jjzjj

SRANDMEMBER

全部标签

lua - Redis 链式命令

我想知道将一系列命令链接在一起以便它们在返回最终结果之前都在Redis上执行的最佳方法是什么?我所有的数据都存储在集合中。data1=[a,b,c,d,e]data2=[b,c]我将如何获取data1和data2的交集(result=b,c),然后对结果调用SRANDMEMBER?在一个系列中它看起来像:redis>SINTERdata1data2redis>SRANDMEMBER当然可以将其他操作链接在一起,例如SDIFF和SADD,但从交叉点中选择随机项目似乎是最简单的示例。我尝试创建一个lua脚本,但当我尝试执行以下代码时收到消息“Luaredis()命令参数必须是字符串或整数”

php - 我如何将带有 COUNT 参数的 SRANDMEMBER 结果存储在 SET 中?

我正在使用phpredis,我有如下内容:$qrand=$redis->sRandMember('qall',25);有没有一种简单的方法可以将结果数组存储在SET中,而不是循环并添加到集合中? 最佳答案 您可以编写一个Lua脚本来为您执行此操作。像下面这样的东西应该可以工作:EVAL"redis.replicate_commands()redis.call('SADD',KEYS[2],unpack(redis.call('SRANDMEMBER',KEYS[1],ARGV[1]))"2qalltmp25注意:由于随机性,这仅适用

php - 我如何将带有 COUNT 参数的 SRANDMEMBER 结果存储在 SET 中?

我正在使用phpredis,我有如下内容:$qrand=$redis->sRandMember('qall',25);有没有一种简单的方法可以将结果数组存储在SET中,而不是循环并添加到集合中? 最佳答案 您可以编写一个Lua脚本来为您执行此操作。像下面这样的东西应该可以工作:EVAL"redis.replicate_commands()redis.call('SADD',KEYS[2],unpack(redis.call('SRANDMEMBER',KEYS[1],ARGV[1]))"2qalltmp25注意:由于随机性,这仅适用

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

我正在尝试两全其美。使用redis集以及具有确定性。这可能吗?我正在使用常用命令存储一个集合:SADDmyset"foo"SADDmyset"bar"但是如果我请求一个元素来处理SRANDMEMBERmyset我希望返回的元素是确定性的。我实际上并不关心它是哪一个,但我希望我的代码中的路径是可重现的,否则调试会变得相当困难。是否可以在redis中设置种子,或使用其他技术,以确保上述三个操作按顺序始终返回相同的元素? 最佳答案 否-SRANDMEMBER的行为不可控。如果您需要命令,即使只是为了调试,我也建议您使用不同的方法。Sort

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

我正在尝试两全其美。使用redis集以及具有确定性。这可能吗?我正在使用常用命令存储一个集合:SADDmyset"foo"SADDmyset"bar"但是如果我请求一个元素来处理SRANDMEMBERmyset我希望返回的元素是确定性的。我实际上并不关心它是哪一个,但我希望我的代码中的路径是可重现的,否则调试会变得相当困难。是否可以在redis中设置种子,或使用其他技术,以确保上述三个操作按顺序始终返回相同的元素? 最佳答案 否-SRANDMEMBER的行为不可控。如果您需要命令,即使只是为了调试,我也建议您使用不同的方法。Sort

redis randomKey 来自特定值?

我有很多不同的key。有些以“用户USERNAME”开头,还有许多其他开头。有没有办法从“用户*”那里得到一个随secret钥?如果是这样,我怎样才能获得5个不同的用户? 最佳答案 如果将所有用户名放入Redis集中,则可以使用SRANDMEMBER命令从集合中随机获取用户名。文档中的示例:redis>SADDmysetonetwothree(integer)3redis>SRANDMEMBERmyset"three"redis>SRANDMEMBERmyset21)"three"2)"two"集合似乎是唯一的Redisdataty

redis randomKey 来自特定值?

我有很多不同的key。有些以“用户USERNAME”开头,还有许多其他开头。有没有办法从“用户*”那里得到一个随secret钥?如果是这样,我怎样才能获得5个不同的用户? 最佳答案 如果将所有用户名放入Redis集中,则可以使用SRANDMEMBER命令从集合中随机获取用户名。文档中的示例:redis>SADDmysetonetwothree(integer)3redis>SRANDMEMBERmyset"three"redis>SRANDMEMBERmyset21)"three"2)"two"集合似乎是唯一的Redisdataty

redis - 在 5 个单独的查询中执行 srandmember [key] 5 对 Redis 的负载是否较小?

如果一个集合上的RedisSRANDMEMBER可能被多次调用(在运行时未知),它是否会减少要使用的Redis服务器上的负载SRANDMEMBER[键]计数而不是运行SRANDMEMBER[key]1,数一数?例如,当我们知道永远不会需要超过5个随机成员时,为srandmember[key]5运行它。 最佳答案 这取决于很多事情......首先,我们将SRANDMEMBER[key]1调用为SRANDMEMBER,将SRANDMEMBER[key]count调用为batchSRANDMEMBER。此外,SRANDMEMBER[key