草庐IT

redis - 添加到 Redis 集

我正在阅读Redis,fromthegroundup我无法理解这部分:redis>MULTIOKredis>SETarticle.technology.1021"Intoday'stechnologynews,..."QUEUEDredis>SADDarticle.technology1021QUEUEDredis>PUBLISHnew.article.technology1021QUEUEDredis>EXEC1.OK2.(integer)13.(integer)1为什么先是SET然后是SADD?,为什么SADD调用收到的是1021,而不是文章的值? 最佳

ruby - Redis 排序集 : Bulk ZSCORE

如何根据成员的ID从排序集中获取成员列表而不是仅获取一个成员?我想用实际排序集中的一组ID构建一个子集。我正在为Redis使用Ruby客户端,不想一一迭代。因为我想查找的成员可能超过3000个。这是issuetracker到一个新命令ZMSCORE来执行批量ZSCORE。 最佳答案 ZSCORE没有可变形式,但是-请参阅讨论:https://github.com/antirez/redis/issues/2344也就是说,目前您可以为此使用Lua脚本。例如:localscores={}while#ARGV>0doscores[#sc

ruby - Redis 排序集 : Bulk ZSCORE

如何根据成员的ID从排序集中获取成员列表而不是仅获取一个成员?我想用实际排序集中的一组ID构建一个子集。我正在为Redis使用Ruby客户端,不想一一迭代。因为我想查找的成员可能超过3000个。这是issuetracker到一个新命令ZMSCORE来执行批量ZSCORE。 最佳答案 ZSCORE没有可变形式,但是-请参阅讨论:https://github.com/antirez/redis/issues/2344也就是说,目前您可以为此使用Lua脚本。例如:localscores={}while#ARGV>0doscores[#sc

python - 如何使用zscan以相反的顺序遍历Redis中的排序集?

我在Redis中有一个排序集,优先级从0到3。我想使用python迭代器zscan_iter从最高优先级到最低优先级遍历这个排序集。但是,使用zscan_iter给我从0开始的项目。有没有办法颠倒顺序?不幸的是,reverse()仅适用于迭代器,不适用于python生成器。我看到两个解决方案:使用负优先级(因此使用-3而不是3)使用ZREVRANGEBYSCORE对键切片进行分页,但我更愿意使用迭代器。还有其他方法吗? 最佳答案 用迭代器扫描SortedSet不保证任何顺序。为此使用ZREVRANGEBYSCORE。

python - 如何使用zscan以相反的顺序遍历Redis中的排序集?

我在Redis中有一个排序集,优先级从0到3。我想使用python迭代器zscan_iter从最高优先级到最低优先级遍历这个排序集。但是,使用zscan_iter给我从0开始的项目。有没有办法颠倒顺序?不幸的是,reverse()仅适用于迭代器,不适用于python生成器。我看到两个解决方案:使用负优先级(因此使用-3而不是3)使用ZREVRANGEBYSCORE对键切片进行分页,但我更愿意使用迭代器。还有其他方法吗? 最佳答案 用迭代器扫描SortedSet不保证任何顺序。为此使用ZREVRANGEBYSCORE。

redis - 从给定的获取哈希集 - 向前

我正在使用以下键存储哈希集:measurement:,f.e.measurement:1482236501103,然后在稍后我想传递某个时间戳并获取从给定时间戳到结束的所有记录。但由于Redis不对记录进行排序,我能想到的唯一解决方案是检查每个键-其名称中的时间戳是否比给定的“更大”。有没有更好的办法? 最佳答案 确实,有更好的方法来处理这种类型的查询。将测量值存储在有序集中-将时间戳保留在分数中,元素本身就是测量值。因为集合中的成员必须是唯一的,但我假设可以重复测量值,而不是按原样存储值并在其前面加上时间戳,以使成员唯一。这意味着

redis - 从给定的获取哈希集 - 向前

我正在使用以下键存储哈希集:measurement:,f.e.measurement:1482236501103,然后在稍后我想传递某个时间戳并获取从给定时间戳到结束的所有记录。但由于Redis不对记录进行排序,我能想到的唯一解决方案是检查每个键-其名称中的时间戳是否比给定的“更大”。有没有更好的办法? 最佳答案 确实,有更好的方法来处理这种类型的查询。将测量值存储在有序集中-将时间戳保留在分数中,元素本身就是测量值。因为集合中的成员必须是唯一的,但我假设可以重复测量值,而不是按原样存储值并在其前面加上时间戳,以使成员唯一。这意味着

redis - Redis 中的哈希集或排序集?

我的网站有一个用例,我需要以如下形式存储用户特定的日常统计信息user:1{field1:value,field2:value,field3:value}以上表示适用于n个用户目前,我已经使用排序集实现了它,其中字段表示排序集的值,值表示分数。我还为这些key设置了每日到期时间。考虑到当用户数量很大时单个key创建和过期的开销,考虑到它的优点如下,我正在考虑使用哈希的替代表示,如下所示Mapoffield1Mapoffield2Mapoffield3Alsoamapforexpiry我很困惑是坚持现有的实现还是使用哈希实现用例。有人可以帮忙吗? 最佳答案

redis - Redis 中的哈希集或排序集?

我的网站有一个用例,我需要以如下形式存储用户特定的日常统计信息user:1{field1:value,field2:value,field3:value}以上表示适用于n个用户目前,我已经使用排序集实现了它,其中字段表示排序集的值,值表示分数。我还为这些key设置了每日到期时间。考虑到当用户数量很大时单个key创建和过期的开销,考虑到它的优点如下,我正在考虑使用哈希的替代表示,如下所示Mapoffield1Mapoffield2Mapoffield3Alsoamapforexpiry我很困惑是坚持现有的实现还是使用哈希实现用例。有人可以帮忙吗? 最佳答案

php - 获取出现在多个 redis 排序集上的所有键

我在Redis上有多个排序集,其中包含一个用户ID和一个分数。有什么方法可以过滤和获取出现在多个集合上的用户ID?例如,如果列表看起来像这样ListA-u1,u2,u3,u4,u5ListB-u3,u4,u5ListC-u4,u2,u3ListD-u4,u1,u2如果我输入列表A、B、C、D,那么应该出现的唯一用户ID是u4如果我输入列表A、B、C,则返回的用户ID为u4、u3。我可以在PHP中通过加载每个列表并过滤掉每个列表直到我得到我想要的ID来想象这样做,但是有什么方法可以在Redis中执行这个操作吗?我也对在Redis中存储这种结构的新方法持开放态度。