草庐IT

ruby-on-rails - 雷迪斯 : sum aggregation for keys having some regex

我正尝试按照本教程使用Redis在我的Rails应用程序中实现一个页面查看计数器->http://codemy.net/posts/analytics-with-redis-part-3.在本教程中,key是这样添加的:$redis.incr"统计:#{Date.today.year}:#{Date.today.month}:#{Date.today.day}:post:#{@post.id}:views"现在,如果我想获得特定帖子ID的总浏览量,有哪些选项?一种简单的方法是首先获取所有key:keys统计:*:post:1:views然后迭代这些键以获取值并添加它们。我很确定会有一些

php - PHP 中的 Redis : keys "*"

我在互联网上上下搜索,但找不到命令howtogetallkeysfromRedisdbinphp.示例:$redis->connect$redis->hset当我在redis-cli中键入keys"*"时,我得到了存储在db中的所有key。输出:tenshi@mashiro:~$redis-cli127.0.0.1:6379>键*1)“测试服务器”2)“测试服务器”3)“服务器5”现在我想在php中使用类似的命令。 最佳答案 如果您使用的是PHPextensionforredis,那么命令就是$redis->keys('*')

redis - 如何在 KEYS 操作 REDIS 中指定最大 key 长度

有谁知道如何指定redisKEYS操作的最大key长度?提前致谢! 最佳答案 KEYS是一个危险的命令-不要将它用于除开发目的以外的任何用途。也就是说,该命令的模式匹配功能是基本的,不包括指定键名最大长度的功能。 关于redis-如何在KEYS操作REDIS中指定最大key长度,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/39326351/

python - keys 和 mget 不是原子的?

我有一个案例:#a=r.keys("test_*");a{'test_1':'1','test_2':'2'}#b=r.mget(a);b['1',''2]但是test_1可能会在mget时超时。那么我怎样才能使keys和mget作为原子步骤来制作dict(zip(keys,r.mget(keys))总能得到我想要的? 最佳答案 为了让这两个命令原子运行,可以使用lua脚本。--atomic.lualocalkeys=redis.call('keys','*')localresult={}foridx,keyinipairs(key

redis - 将所有 KEYS 从一个数据库复制到同一个 Redis 中的另一个数据库

我正在尝试将所有key从db=2复制到运行在端口6380的同一个redis中的db=3。我已经关注了其他几个SO问题,但得到了NOKEY作为回应。请查找相同的查询。有人可以帮助解决以下命令的问题吗?redis-3.2.8/src/redis-cli-p6380-n2--scan|xargsredis-3.2.8/src/redis-cli-p6380migratelocalhost6380''30copykeys 最佳答案 这不是错误。在您的情况下,您扫描的key可能在您尝试迁移时已过期。如果您要迁移的key在源数据库中不存在,MI

redis 使用 KEYS 的数字范围

我有一些名为Events:21039-lat:101.2321-long:24.3143的键。现在,我想搜索所有键,它是这样的:Events:*-lat:[99.2321和103.2321之间的任何数字]-long:[23.3143和25.3143之间的任何数字].我决定使用key的原因是因为写入的事件不多,因此我可以有很多读取从属,否则我将不得不以高度不可扩展的方式进行此计算w.mysql。有/没有redis有更好的方法吗? 最佳答案 不建议在生产环境中使用key。它的时间复杂度是O(N),其中N是数据库中键的数量。(来源:htt

redis - 当您在特定数据库上运行 `KEYS` 命令时,Redis 会锁定所有可用数据库吗?

当您在Redis数据库中运行KEYS*命令时,Redis将锁定数据库,直到key返回所有key。我想在Redis中创建2个单独的数据库并在每个数据库中创建一些key,然后选择其中一个并在该数据库上运行keys命令。Redis会锁定所有可用的数据库直到回答准备好还是只锁定选定的数据库? 最佳答案 TL;DR:是的。Redis不会锁定-它会阻塞(几乎1)所有命令,因为它是单线程的。当服务器执行命令时,无论是简单的GET还是邪恶的KEYS,它都会忙于提供服务而不会做任何其他事情。命令完成所需的时间越长,服务器被阻塞的时间就越长。KEYS是

Redis 集群 : Is it possible to obtain one hash slot from different keys?

我从Redis集群教程中了解到,集群只有16384个槽(0-16383)。哈希槽是通过以下命令计算的:CRC16(KEY)mod16384。因此,例如某些key的CRC16等于16385,哈希槽将为1。对于另一个key,CRC16等于32769,哈希槽将再次为1。它会引起一些冲突吗?还是第一个会被第二个重写? 最佳答案 如果我理解你的问题,不,这不是冲突。每个key属于一个hashsolt,但每个hashslot可以有多个key。CLUSTERGETKEYSINSLOT槽数:https://redis.io/commands/clu

redis - [REDIS] : How to Delete All Keys on Master and Slave(s)?

我正在尝试删除redis主服务器和从服务器上的所有键,但是当我执行flushall时或flushdb来自redis-cli在master上,它只删除master上的key,反之亦然,如果我在slave上删除key,它只删除slave上的key。我应该使用什么命令来删除主从上的所有key?我需要为此启用集群支持吗?因为现在它在我的设置中被禁用了。还有一个问题,为什么在使用flushall的情况下没有复制?或flushdb来自redis-cli? 最佳答案 你只需要在每个master上调用FLUSHALL或FLUSHDB来删除所有key

php - redis lua 脚本调用 redis.call ("ZREVRANGE", KEYS[1], start, end, 'WITHSCORES' )

我使用phpredis扩展,当我调用时:redis.call("ZREVRANGE",KEYS[1],start,endPos,'WITHSCORES')在lua脚本中,它返回array(6){[0]=>string(5)"10010"[1]=>string(2)"12"[2]=>string(5)"10012"[3]=>string(2)"-2"[4]=>string(5)"10011"[5]=>string(2)"-2"}实际上我想返回关联数组:array("10010"=>12,"10012=>-2,...) 最佳答案 我已经