redis中的集合可以是确定性的吗?

时间:2015-11-14 00:54:10

标签: redis

我试图充分利用这两个世界。使用redis集以及具有确定性。这可能吗?

我使用常用​​命令存储一组:

SADD myset "foo"
SADD myset "bar"

但是如果我要求处理一个元素

SRANDMEMBER myset

我希望返回的元素是确定性的。我实际上并不关心它是哪一个,但我希望我的代码中的路径可以重现,否则调试变得相当困难。

是否可以使用redis设置种子,或者使用其他技术,以确保上面的三个操作按顺序始终返回相同的元素?

1 个答案:

答案 0 :(得分:2)

否 - SRANDMEMBER的行为无法控制。

如果您需要订购,即使仅为了调试,我建议您使用不同的方法。排序集是此任务的自然候选者,其行为与集合相同 - 使用0得分,因此成员按字典顺序排序并将SRANDMEMBER的调用替换为ZRANGE,并将其传递给您自己的客户端生成随机排名或确定性排名。