如何从分数列表中获取redis zset的数据?

时间:2017-07-17 09:35:29

标签: redis zset

我想从zset获取带有分数列表的数据,例如

zadd zset 1 a 2 b 3 c 4 d

我想要一个像

这样的命令
'zrange zset [2, 4]'

,结果是

b, d

谢谢!

2 个答案:

答案 0 :(得分:0)

只有@MyActivityScope @Subcomponent(modules={ MyActivityModule.class }) public interface MyActivitySubComponent { void inject(DemoDaggerSubActivity activity); @Named("my_list") ArrayAdapter myListAdapter(); } 命令。

答案 1 :(得分:0)

您可以使用一段代码来执行此操作,例如:

for score in score_list
    members = zrangebyscore(zset, score, score)
    member_list += members 

ZRANGEBYSCORE的时间成本是O(LOG(N)+ M),M是返回的成员数。所以我们可以说我们的zrangebyscore中的成本是O(LOG(N)),N是zset的大小。 所以总时间成本是O(M * LOG(N)),M是得分列表的长度。这将是最好的时间成本。

唯一不好的是我们在网络传输中花费了M RTT。我们可以使用管道来加速查询。

redis document说:

  

可以实现请求/响应服务器,以便即使客户端尚未读取旧响应,它也能够处理新请求。这样就可以在不等待回复的情况下向服务器发送多个命令,最后只需一步即可阅读回复。

因此,如果您使用管道技术,它只需要一个RTT时间。我认为redis的每个语言客户端都实现了管道。祝好运 !