gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-11-01 11:13:06 25 4
gpt4 key购买 nike

如果一个集合上的 Redis SRANDMEMBER 可能被多次调用(在运行时未知),它是否会减少要使用的 Redis 服务器上的负载

SRANDMEMBER [键] 计数

而不是运行

SRANDMEMBER [key] 1,数一数?

例如,当我们知道永远不会需要超过 5 个随机成员时,为 srandmember [key] 5 运行它。

最佳答案

这取决于很多事情......

首先,我们将SRANDMEMBER [key] 1调用为SRANDMEMBER,将SRANDMEMBER [key] count调用为batch SRANDMEMBER。此外,SRANDMEMBER [key] 1 等于 SRANDMEMBER [key]

How many random members do you want?

如果您需要太多随机成员,即非常大的count,那么batch SRANDMEMBER 可能会阻塞服务器很长时间,因为 Redis 是单一的- 线程。这会增加 Redis 的负载。

相反,如果 count 很小,例如小于 10batch SRANDMEMBER 应该非常高效,并且不会增加任何显着负载。

Network latency

与多次调用SRANDMEMBER(多次'RTT')相比,batch SRANDMEMBER 可以减少网络延迟,即仅花费一次RTT .

Unique random members

通过多次调用 SRANDMEMBER,您可能会多次获得同一个成员。

如果你想要唯一的随机成员,你必须使用batch SRANDMEMBER。如果 count 为正数,Redis 保证返回的成员是唯一的。当然,如果 count 大于 SET 的大小,则返回的成员数可能小于 count

如果您的系统容忍重复的随机成员,您可以使用多次调用 SRANDMEMBER,或者一次调用 batch SRANDMEMBER 并使用负数 count

关于redis - 在 5 个单独的查询中执行 srandmember [key] 5 对 Redis 的负载是否较小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42030844/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com