柚子快報(bào)邀請碼778899分享:緩存 Redis的數(shù)據(jù)過期策略
柚子快報(bào)邀請碼778899分享:緩存 Redis的數(shù)據(jù)過期策略
1.Redis對key設(shè)置過期時(shí)間
使用expire key seconds命令來設(shè)置數(shù)據(jù)的過期時(shí)間
創(chuàng)建test測試key
對test設(shè)置過期時(shí)間為60秒
?
?查看test還有多少剩余時(shí)間,如圖所示還有55秒
使用persist命令可以設(shè)置為永不過期,查看結(jié)果:-1表示永不過期,-2表示已過期
?
?
2.Redis key過期的方式
Redis key過期的方式有三種:
定期刪除:定期刪除可能導(dǎo)致很多過期的key 到了時(shí)間并沒有被刪除掉。這時(shí)就要使用到惰性刪除。在你獲取某個(gè)key的時(shí)候,redis會(huì)檢查一下,這個(gè)key如果設(shè)置了過期時(shí)間并且過期了,是的話就刪除。惰性刪除:定期刪除可能導(dǎo)致很多過期的key 到了時(shí)間并沒有被刪除掉。這時(shí)就要使用到惰性刪除。在你獲取某個(gè)key的時(shí)候,redis會(huì)檢查一下,這個(gè)key如果設(shè)置了過期時(shí)間并且過期了,是的話就刪除。當(dāng)前已用內(nèi)存超過maxmemory限定時(shí),觸發(fā)主動(dòng)清理策略 (內(nèi)存淘汰機(jī)制)
3.Redis的緩存淘汰策略
Redis共提供了8中緩存淘汰策略:
1、noeviction:不進(jìn)行淘汰數(shù)據(jù)。一旦緩存被寫滿,再有寫請求進(jìn)來,Redis就不再提供服務(wù),而是直接返回錯(cuò)誤。Redis 用作緩存時(shí),實(shí)際的數(shù)據(jù)集通常都是大于緩存容量的,總會(huì)有新的數(shù)據(jù)要寫入緩存,這個(gè)策略本身不淘汰數(shù)據(jù),也就不會(huì)騰出新的緩存空間,我們不把它用在 Redis 緩存中。
2、volatile-ttl:在設(shè)置了過期時(shí)間的鍵值對中,移除即將過期的鍵值對。
3、volatile-random:在設(shè)置了過期時(shí)間的鍵值對中,隨機(jī)移除某個(gè)鍵值對。
4、volatile-lru:在設(shè)置了過期時(shí)間的鍵值對中,移除最近最少使用的鍵值對。
5、volatile-lfu:在設(shè)置了過期時(shí)間的鍵值對中,移除最近最不頻繁使用的鍵值對
6、allkeys-random:在所有鍵值對中,隨機(jī)移除某個(gè)key。
7、allkeys-lru:在所有的鍵值對中,移除最近最少使用的鍵值對。
8、allkeys-lfu:在所有的鍵值對中,移除最近最不頻繁使用的鍵值對
柚子快報(bào)邀請碼778899分享:緩存 Redis的數(shù)據(jù)過期策略
文章來源
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場。
轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。