日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

redis过期策略和淘汰机制你知道多少?

發(fā)布時間:2023/12/15 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 redis过期策略和淘汰机制你知道多少? 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

關(guān)注微信公眾號“蝦米聊吧”,每天更新一篇技術(shù)文章,文章內(nèi)容涵蓋架構(gòu)師成長必經(jīng)之路應(yīng)掌握的技術(shù),一起學(xué)習(xí),一起交流。

?

開篇提問:你是否遇到過生產(chǎn)環(huán)境redis丟數(shù)據(jù)的問題?比如你剛剛寫入了一堆數(shù)據(jù)到redis,然后過了一會就沒了,那么這是什么原因造成的呢?接下來我們簡單探討一下這個問題。

?

首先要明確一點,redis是用來做緩存的并不是用來做常規(guī)存儲的,千萬不要什么數(shù)據(jù)都一股腦往里面丟,畢竟內(nèi)存是很寶貴而有限的資源,不比磁盤,磁盤是非常廉價的。一臺服務(wù)器可能內(nèi)存就幾十個G,但是卻有幾個T的磁盤空間。redis主要是基于內(nèi)存操作的,用來提高高并發(fā)下的讀寫操作性能。

?

因為內(nèi)存是有限的所以,如果你寫入的數(shù)據(jù)超出了redis可用內(nèi)存的大小,那么redis會基于LRU算法清理掉部分數(shù)據(jù),舉個例子,如果設(shè)置了你的redis是可以使用16G內(nèi)存,你要是往里面寫了20G數(shù)據(jù)。那么自然會清理掉4G數(shù)據(jù),然后保留16G數(shù)據(jù),清理掉的數(shù)據(jù)通常是不常使用的,然后保留常用數(shù)據(jù)。

因此,redis中的數(shù)據(jù)是會過期的,要么是你自己設(shè)置了過期時間,要么是redis自己給清理掉了。

說到這里,那么問題來了,redis具體是怎么清理掉我們設(shè)置了過期時間的數(shù)據(jù)的呢因為有時候你在監(jiān)控內(nèi)存的時候可能會發(fā)現(xiàn),明明好多數(shù)據(jù)都設(shè)置了過期時間,但是redis的內(nèi)存依然占用很高,這個時候你可能就會撓撓頭一臉懵逼了,那么接下來我們將簡單探討一下具體redis是怎么刪除那些過期key的。

因為如果不清楚redis的清理刪除機制,可能會導(dǎo)致在高并發(fā)的場景中,redis沒有有效的提升系統(tǒng)的性能,還有可能導(dǎo)致其他的問題。

redis刪除清理key的一般有如下兩種情況:1)對設(shè)置過期時間redis的進行刪除(2)通過內(nèi)存淘汰機制刪除部分key;下面我們對這兩種情況的原理分別進行探討。

?

01? 設(shè)置過期時間redis的清理機制

?

redis中對某一個key設(shè)置過期時間相信我們再熟悉不過了,因為我們只要在set key的時候,就可以給一個expire time,就是過期時間,指定這個key多久后過期,到達過期時間后緩存就會失效。

那么具體redis是怎么刪除我們這些已經(jīng)過期的key的呢?

答案是:定期刪除+惰性刪除

?

所謂定期刪除,指的是redis默認是每隔100ms就隨機抽取一些設(shè)置了過期時間的key,檢查其是否過期,如果過期就刪除。注意,這里并不是每隔100ms就遍歷所有的設(shè)置過期時間的key,因為如果是遍歷檢測所有設(shè)置過期時間的key的話那你的redis基本就掛了。簡單做個比喻說明:假設(shè)redis里存放了100萬個key,都設(shè)置了過期時間,你每隔幾百毫秒,就檢查這100萬個key,那么很不幸你的redis基本上就死了,因為cpu的負載全消耗在你檢查過期key上了。實際上redis是每隔100ms隨機抽取一些key來檢查和刪除的。

?

但是隨機抽取一些key的話又會造成另一個問題: 可能會出現(xiàn)很多過期key到了時間并沒有被刪除掉,因為隨機抽取的時候并沒有抽取到,那redis又是怎么解決這個問題的呢?答案就是惰性刪除。惰性刪除的意思就是,在你獲取某個key的時候,redis會檢查一下 ,這個key是否設(shè)置了過期時間,如果設(shè)置了過期時間那么是否過期了?如果過期了此時就會刪除該key,并不會給你返回任何東西。因此要注意并不是key到時間就會被刪除掉,而是你查詢這個key的時候,redis再懶惰的檢查一下

redis就是通過上述兩種手段結(jié)合起來,以確保過期的key一定會被刪除掉。

簡單來說就是你設(shè)置的過期key,如果通過定期刪除沒有被刪除掉,就仍然會停留在內(nèi)存里,占用著你的內(nèi)存,這個時候只有你的系統(tǒng)去主動查一下那個key,才會被redis給刪除掉

但是實際上經(jīng)過以上的處理機制后,如果定期刪除漏掉了很多過期key的話,然后你也沒及時去查,也就沒走惰性刪除,就會造成大量過期key堆積在內(nèi)存里,最終仍然可能會導(dǎo)致redis內(nèi)存耗盡,因此這個問題又該怎么解決呢?

答案是:走內(nèi)存淘汰策略。

?

02?內(nèi)存淘汰策略

?

當(dāng)redis的內(nèi)存占用過多或者快達到redis可用內(nèi)存上限一定比例的時候,此時會觸發(fā)redis內(nèi)存淘汰策略,具體有如下一些策略:

1)noeviction:當(dāng)內(nèi)存不足以容納新寫入數(shù)據(jù)時,新寫入操作會報錯,這個一般沒人用

2)allkeys-lru當(dāng)內(nèi)存不足以容納新寫入數(shù)據(jù)時,在鍵空間中,移除最近最少使用的key(這個是最常用的)

3)allkeys-random:當(dāng)內(nèi)存不足以容納新寫入數(shù)據(jù)時,在鍵空間中,隨機移除某個key,這個一般也沒人用

4)volatile-lru:當(dāng)內(nèi)存不足以容納新寫入數(shù)據(jù)時,在設(shè)置了過期時間的鍵空間中,移除最近最少使用的key(這個一般不太合適)

5)volatile-random:當(dāng)內(nèi)存不足以容納新寫入數(shù)據(jù)時,在設(shè)置了過期時間的鍵空間中,隨機移除某個key

6)volatile-ttl:當(dāng)內(nèi)存不足以容納新寫入數(shù)據(jù)時,在設(shè)置了過期時間的鍵空間中,有更早過期時間的key優(yōu)先移除

?

注:一般都是采用第二種策略allkeys-lru,因為刪除最近最少使用key基本符合我們的業(yè)務(wù)要求

?

關(guān)注微信公眾號“蝦米聊吧”,獲取更多知識資料干貨~,一起交流,一起學(xué)習(xí)~,

一起打卡學(xué)習(xí),一起交流進步吧!

微信掃描二維碼,關(guān)注我的公眾號

總結(jié)

以上是生活随笔為你收集整理的redis过期策略和淘汰机制你知道多少?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 极品少妇av | 噜噜吧噜噜色 | 中文在线资源 | 国产精品51 | 日韩一级影院 | 性爱视频日本 | 国产视频一区二区在线观看 | av青青草原| 丁香网五月天 | 一本久久道 | 日韩欧美综合视频 | 国产亚洲片 | 日本一品道 | 艳母动漫在线播放 | 少女国产免费观看 | 秋霞福利片 | 欧美美女在线观看 | 熟妇人妻av无码一区二区三区 | 精品少妇无码av无码专区 | 美国成人免费视频 | 欧美色老头old∨ideo | 久久性| 两个小y头稚嫩紧窄h文 | 一区二区三区四区在线免费观看 | 青娱乐超碰在线 | 日本乱论视频 | 国产欧美一区二区三区免费看 | 中文字幕av解说 | 捆绑调教sm束缚网站 | 麻豆黄色网 | av二区在线 | 四虎国产精品成人免费入口 | 精品国产99一区二区乱码综合 | 少妇精品久久久久www | 色爱成人综合 | 玖玖伊人 | 在线观看免费大片 | 天天操夜夜操 | 亚洲国产精品自拍 | 成人h片 | 日韩porn | 国产99视频在线 | 欧美sm极限捆绑bd | 欧美一级黄色片视频 | 超碰77 | 综合欧美亚洲 | jizz处女| 欧美特级黄 | 暖暖日本在线 | 国产超碰在线观看 | 告诉我真相俄剧在线观看 | 综合久久一区二区 | 国内精久久久久久久久久人 | 午夜视频欧美 | 成人av综合 | 神马午夜一区二区 | 成人在线观看你懂的 | 国产精品888 | 在线观看黄色免费视频 | 日韩特级片 | 国内精品卡一卡二卡三 | 清纯唯美第一页 | 久久人妻精品白浆国产 | 国产精品毛片一区二区在线看舒淇 | 国产婷婷综合 | 欧美日韩综合在线 | 韩国三级中文字幕hd久久精品 | 国产精品美女一区二区 | 一级片大片 | 国产三级精品三级 | 综合色伊人| 欧美日韩在线一区 | 国产综合免费视频 | 91亚洲精品久久久蜜桃网站 | 毛片88 | 久久久噜噜噜久久 | 不卡视频在线播放 | 天天添| 男人的天堂色偷偷 | 色av资源 | 福利在线观看 | 国产精品久久久久久久久借妻 | 日韩人妻无码一区二区三区 | 成人一级毛片 | 日本美女日批视频 | 91香蕉视频在线观看免费 | 天天做日日做 | 福利一区福利二区 | 成人深夜福利在线观看 | 成人午夜淫片100集 伊人久久国产 | 欧美xxx在线观看 | 可以看av的网站 | 国产一区二区三区日韩 | 亚洲欧洲一区 | 欧美性受xxxx黑人xyx性 | 你懂的av在线 | www.rihan| 综合亚洲网 | 欧美××××黑人××性爽 |