2016-11-29 76 views
0

在Django應用程序中,我使用redis來維護全局排序集,其中用戶id以epoch以來的當前時間得分存儲。按分數排序的修整集

每隔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

更換eleven_mins_ago與字符串值-inf刪除一切的年齡超過10分鐘,至避免任何「泄漏」年齡。請參閱ZRANGE的文檔頁面的Exclusive intervals and infinity部分以獲取全部詳細信息和解釋。

+0

這是一個比redis-py docs更好的資源。 –