我正在努力寻找使用方式。对于每一个请求,我都会在当天的第二秒进行标记。最后,我将看到使用模式。在redis中执行此操作的最佳结构是什么?

最佳答案

您可以通过三种方式存储它:

1)将setbit操作存储在单个密钥中

如果频率很高,则可以使用setbit操作。就是说,如果您几乎用秒标记所有时间,则必须在其中存储86400个值。但这几乎不需要0.1 Mb的存储空间。
即使您在86400秒仅存储一个条目,也必须丢失0.1 Mb。但它始终具有固定大小,即0.1 Mb。还要注意,您可以将整个内容作为字符串获得,并且必须将它们转换为位。

setbit date second
get date

2)套

如果频率有点低,则可以使用设置。因此,只有您收到请求的那几秒钟。
Sadd date second
smembers date

3)哈希

如果想知道每秒的计数,可以使用哈希。
Hincrby date second 1
hgetall date

还要对所有这些进行样本测试,并比较大小和效率。

10-05 20:41
查看更多