修剪按分数排序

时间:2016-11-29 20:29:41

标签: redis redis-py

在Django应用程序中,我使用redis来维护一个全局排序集,其中存储用户ID,其中包含自纪元以来当前时间的分数。

每隔11分钟,我将运行一个异步任务,将已排序的集合修剪为前10分钟保存的值,之外的任何内容。

以下是否会实现此目的?我不确定边缘情况(例如,这会确保所有旧值被删除或会有一些泄漏等):

time_now = time.time() #current time since epoch
ten_mins_ago = time_now - (10*60)
eleven_mins_ago = time_now - (11*60)
my_redis_server.zremrangebyscore(sorted_set,eleven_mins_ago,ten_mins_ago)

1 个答案:

答案 0 :(得分:1)

eleven_mins_ago替换为字符串值-inf,以删除超过10分钟的所有内容,并避免任何"泄漏"年龄。有关完整的详细信息和说明,请参阅ZRANGE文档页面的Exclusive intervals and infinity部分。