【问题标题】:Can sets in redis be deterministic?redis中的集合可以是确定性的吗?
【发布时间】:2017-02-06 20:04:54
【问题描述】:

我正在努力做到两全其美。使用 redis 集以及具有确定性。这可能吗?

我正在使用常用命令存储一个集合:

SADD myset "foo"
SADD myset "bar"

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

SRANDMEMBER myset

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

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

【问题讨论】:

  • 你需要这个特定的案例来重复你的代码中的某个场景吗?

标签: redis


【解决方案1】:

否 - SRANDMEMBER 的行为无法控制。

如果你需要命令,即使只是为了调试,我建议你使用不同的方法。 Sorted Sets 是该任务的自然候选者,其行为与 Sets 非常相似 - 使用 0 分数,因此成员按字典顺序排序,并将对 SRANDMEMBER 的调用替换为 ZRANGE,将您自己的客户端生成的随机排名或确定性的。

【讨论】:

    猜你喜欢
    • 2021-05-26
    • 2012-04-14
    • 2019-01-26
    • 2011-04-19
    • 2012-12-14
    • 2012-07-28
    • 1970-01-01
    • 2016-12-03
    • 1970-01-01
    相关资源
    最近更新 更多