国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Redis sortedset實現元素自動過期

marek / 502人閱讀

摘要:實現元素自動過期這里的自動過期,并沒有提供相應的,但是可以使用一下方法來實現。原則上,只應該清除掉到達過期時間的元素,未過期的元素則應該保持。

Redis sortedset實現元素自動過期

這里的自動過期,Redis并沒有提供相應的api,但是可以使用一下方法來實現。

需求背景

給用戶返回的文章要求七日內不能重復;文章是存放在java list里邊;(這一塊就是從db將文章拿出來,然后放入list,放入java內存中)。

分析

一開始我的做法是這樣:

當用戶第一次訪問的時候,創建一個key值為userId的緩存,value為title列表(文章標題,文章唯一標識),然后給這個key值設置過期時間。
但是這樣,到過期時,整個列表都會被清掉。原則上,只應該清除掉到達過期時間的元素,未過期的元素則應該保持。這種方法不能實現預期效果。

可實現方案:

使用redis有序集合==sorted Set== 以及對應的==ZREMRANGEBYLEX key min max==命令
移除有序集合中給定的字典區間的所有成員;

redis提供了響應的數據結構和api可以實現:

ZADD key score1 member1 [score2 member2]  
向有序集合添加一個或多個成員,或者更新已存在成員的分數

通過使用 ZREMRANGEBYSCORE key min max 命令刪除有序集合保存在key的最小值和最大值(含)之間的分數的所有元素。 

通過定時去調用此命令,即可實現list元素自動過期;

對應相應的實現方案:
使用redis來存儲給每個用戶下發的文章,對應的key值為userId(用戶唯一標識),value為title列表加上相關聯的score。

zadd userId score title 這里的score為當前時間的時間戳; 

ZREMRANGEBYSCORE key 0 score  
這里的score設為當前時間前7天對應的時間的時間戳;(具體時間戳可以用java Calander類計算得到)

這里可以啟動一個定時任務去定時調用這個命令即可

想要了解更多Redis 有序集合的資料。可參考以下資料:
Redis Zremrangebyscore 命令詳解
Redis 有序集合(sorted set)

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/67481.html

相關文章

  • 阿里云Redis開發規范

    摘要:摘要本文介紹了在使用阿里云的開發規范,從鍵值設計命令使用客戶端使用相關工具等方面進行說明,通過本文的介紹可以減少使用過程帶來的問題。 摘要: 本文介紹了在使用阿里云Redis的開發規范,從鍵值設計、命令使用、客戶端使用、相關工具等方面進行說明,通過本文的介紹可以減少使用Redis過程帶來的問題。 一、鍵值設計 1. key名設計 (1)【建議】: 可讀性和可管理性 以業務名(或數據庫名...

    Jackwoo 評論0 收藏0

發表評論

0條評論

marek

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<