Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Performance Redis-如果集合中有超过x个成员,则删除/弹出_Performance_Redis - Fatal编程技术网

Performance Redis-如果集合中有超过x个成员,则删除/弹出

Performance Redis-如果集合中有超过x个成员,则删除/弹出,performance,redis,Performance,Redis,在Redis中,我有数以百万计的集合,其成员数量各不相同 我想缩小整体尺寸,只需要在集合中添加最新的成员 是否有操作可以弹出/删除每个键的任何成员,直到总长度为10或更少?似乎您应该使用,集合不支持此类功能。使用SCARD获取集合大小-对于每个集合,您可以执行SRANDMEMBER和SREM直到集合达到所需大小 常规集合不跟踪插入时间,但如果切换到排序集合,则可以保留时间戳作为分数。然后,无论何时添加成员,检查是否已达到最大大小,并根据需要删除额外的成员。用Lua来包装这一点既简单又有效。我建议

在Redis中,我有数以百万计的集合,其成员数量各不相同

我想缩小整体尺寸,只需要在集合中添加最新的成员


是否有操作可以弹出/删除每个键的任何成员,直到总长度为10或更少?

似乎您应该使用,集合不支持此类功能。

使用
SCARD
获取集合大小-对于每个集合,您可以执行
SRANDMEMBER
SREM
直到集合达到所需大小

常规集合不跟踪插入时间,但如果切换到排序集合,则可以保留时间戳作为分数。然后,无论何时添加成员,检查是否已达到最大大小,并根据需要删除额外的成员。用Lua来包装这一点既简单又有效。

我建议使用“排序集”而不是简单的集,然后使用,将分数设置为自纪元以来的秒数或类似的值。然后,您可以执行旧项目的大规模删除