我目前正在研究Redis,有以下案例:

所以,我有一个由google id设置的排序集,所有的帖子都是从最近到旧的。请求的第一页获取posts <当前时间戳。当一个游标被发送到后端时,这个游标是一个简单的时间戳,它指示从哪里从ZSET获取下一个帖子。
按place id检索帖子的查询如下:
ZREVRANGEBYSCORE <gplaceId> <cur_timestamp> -INF WITHSCORES LIMIT <offset:timestamp as from where to fetch> <count:number of posts>我的问题是,什么是清理ZSET成员的推荐方法。
因为我想使用Redis作为缓存,所以我倾向于将每个位置的帖子数量限制为50个。当位置得到新的帖子时,当已经有50个帖子被添加到集合中时,我想从集合中删除最后一个帖子。
当然,我意识到我可以手动检查每一个插入和执行操作,但我想知道Redis是否有一种建议的方法来执行这种清理。或者,我可以为此创建一个调度程序,但我希望不必这样做。
发布于 2018-11-14 21:32:13
不幸的是,Redis排序集没有提供这方面的开箱即用功能。如果排序集允许一个带有可配置驱逐策略的max大小属性--您可以避免一些额外的工作。
参见以下相关问题:How to specify Redis Sorted Set a fixed size?
在没有这种特性的情况下,您提到的两种方法是正确的。
https://stackoverflow.com/questions/53307809
复制相似问题