首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Redis -如果集合中成员超过x,则删除/弹出

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

Stack Overflow用户
提问于 2015-06-07 06:29:09
回答 3查看 256关注 0票数 0

在Redis,我有数百万套不同数量的会员。

我想缩小整体的规模,真的只需要最新的成员添加到一套。

是否有为每个键删除任何成员直到总长度为10或更短的操作?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-06-07 10:32:30

我建议使用“排序集”而不是简单的集合,并使用ZADD,将分数设置为自那个时代或类似的时间以来的秒数。然后,您可以使用兹伦贝斯克来执行旧项目的大量移除。

票数 1
EN

Stack Overflow用户

发布于 2015-06-07 10:07:51

使用SCARD可以得到一个集合的大小-对于每个集合,您都可以执行SRANDMEMBERSREM,直到集合达到所需的大小为止。

常规集不跟踪插入时间,但如果切换到排序集,则可以将时间戳保留为得分。然后,每当您添加一个成员时,检查是否达到了最大值,并根据需要删除额外的成员。把这个包在Lua里是微不足道的,也是有效的。

票数 1
EN

Stack Overflow用户

发布于 2015-06-07 09:50:45

似乎您应该使用上限列表,SET不支持这样的功能。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30690719

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档