在Redis,我有数百万套不同数量的会员。
我想缩小整体的规模,真的只需要最新的成员添加到一套。
是否有为每个键删除任何成员直到总长度为10或更短的操作?
发布于 2015-06-07 10:32:30
我建议使用“排序集”而不是简单的集合,并使用ZADD,将分数设置为自那个时代或类似的时间以来的秒数。然后,您可以使用兹伦贝斯克来执行旧项目的大量移除。
发布于 2015-06-07 10:07:51
使用SCARD可以得到一个集合的大小-对于每个集合,您都可以执行SRANDMEMBER和SREM,直到集合达到所需的大小为止。
常规集不跟踪插入时间,但如果切换到排序集,则可以将时间戳保留为得分。然后,每当您添加一个成员时,检查是否达到了最大值,并根据需要删除额外的成员。把这个包在Lua里是微不足道的,也是有效的。
发布于 2015-06-07 09:50:45
似乎您应该使用上限列表,SET不支持这样的功能。
https://stackoverflow.com/questions/30690719
复制相似问题