【发布时间】:2015-06-06 19:55:54
【问题描述】:
我在 redis 中有一些具有这个键结构的值
key:1:abc -> votes -> 0
-> name -> John
key:1:xyz -> votes -> 0
-> name -> Mary
key:1:def -> votes -> 1
-> name -> Larry
key:2:ijk -> votes -> 0
-> name -> apple
这就是我的键空间的样子。我正在使用 hmset 将内容存储在 redis 中。 “key:1”是用于标识特定空间中不同用户的占位符,“key:1”之后的部分是“key:1”中每条记录的唯一区分符。我想编写一些代码来过滤掉redis中的数据,以获取所有投票数设置为0的记录。所以jedis代码的输出应该类似于
key:1:abc -> votes -> 0
-> name -> John
key:1:xyz -> votes -> 0
-> name -> Mary
然后拉里被过滤掉了。我正在研究 hmscan 以解决此问题,但不确定该命令会是什么样子。关于我可以做些什么来获得该输出的任何线索?另外你认为这次的时间复杂度是多少?
【问题讨论】:
-
为什么不使用 redis 中的 zset 来进行这个排名,以 key 作为 value,以 votes 作为分数?每次用户有投票变化时,您都会更新此 zset。