(11)Redis過期淘汰策略(內(nèi)存管理和優(yōu)化)

使用內(nèi)存包含:

????自身內(nèi)存:一般沒多少,幾百KB? 涧狮;??Lua內(nèi)存 反璃;內(nèi)存碎片

????緩沖內(nèi)存:復(fù)制時的復(fù)制擠壓緩沖區(qū)及客戶端交互的輸出緩沖區(qū)荣月;優(yōu)化就是調(diào)大小、限制連接數(shù)

????對象內(nèi)存:占主要部分袭蝗,數(shù)據(jù)使用內(nèi)存唤殴;優(yōu)化就是正確用數(shù)據(jù)結(jié)構(gòu)

概要:1共享對象、2鍵值對管理到腥、3過期策略朵逝、4淘汰機制、5內(nèi)存最佳實踐(選擇正確數(shù)據(jù)結(jié)構(gòu)乡范、避免大key配名、熱key)

一、共享對象

啟動時創(chuàng)建10000個redisObject晋辆,代表1-10000整型渠脉,一直保存內(nèi)存中,其他對象用時共享使用瓶佳。LRU成員沒用芋膘,沒有其他開銷。

二、鍵值對管理

redisDb表示數(shù)據(jù)庫为朋,底層用字典類型臂拓,單redis可設(shè)置16個這樣DB;select選擇习寸,不同DB互不影響胶惰。

2.1 過期Key清理

dict結(jié)構(gòu)(dict)存儲鍵值對象;復(fù)用Key霞溪、Value對象童番,沒額外內(nèi)存開銷

記錄設(shè)過期時間的鍵值對威鹿,固定條件,或者CPU空閑轨香,自動執(zhí)行del清理過期Key忽你。最高25%時間刪除,其他時間管理Redis任務(wù)臂容。

過期Key清理算法(redis.c/activeExpireCycle()函數(shù)實現(xiàn)):

(1)遍歷所有的DB科雳,隨機取20個,過期脓杉,則刪除糟秘。

(2)有大于5個過期,則重復(fù)上一步球散;否則遍歷下一個DB

清理過程中尿赚,到時間限制,退出

2.2 異步刪除

4.0對DEL/FLUSHDB/FLUSHALL引入異步處理蕉堰。FLUSHALL/FLUSHDB 加了一個?ASYNC?參數(shù)凌净,同時新增?UNLINK?來表示異步化的刪除命令。unlike命令實現(xiàn):

三屋讶、過期策略(用2+3)

沒設(shè)置時間冰寻,緩存永不過期設(shè)置又想永不過期皿渗,用persist key

三種方式:定時刪斩芭、懶漢式刪、定期刪

2.1定時刪

設(shè)置過期時間時乐疆,為key創(chuàng)建定時器划乖,key過期時刪key

????優(yōu)點:內(nèi)存盡快釋放

? ? 缺點:key多占CPU時間、定時器創(chuàng)建耗時诀拭,影響性能

2.2懶漢式刪

用key獲取值時檢查迁筛,過期刪,返回null。優(yōu)缺點:占CPU少细卧,占內(nèi)存

2.3定期刪

每隔一段時間刪尉桩。限制刪時長和頻率,減少前兩個缺點(折中)

四贪庙、淘汰機制

volatile-lru已設(shè)置過期時間最近最少用

volatile-ttl已設(shè)置過期時間選要過期

volatile-random已設(shè)置過期時間任意選

allkeys-lru:最近最少使用淘汰

allkeys-random任意選數(shù)據(jù)淘汰

no-enviction禁止淘汰數(shù)據(jù)

淘汰算法:

遍歷所有DB蜘犁,按照淘汰策略挑選一個Key淘汰;

若是lru或ttl止邮,隨機取n個樣本(默認(rèn)為5这橙,可配置),選出最佳值淘汰导披;

超過允許值屈扎,重復(fù)上面

五、內(nèi)存最佳實踐

4.1選擇正確數(shù)據(jù)結(jié)構(gòu)

String用整數(shù)撩匕,浮點型成整數(shù)鹰晨。

量大重要:字符串類合理拆分,對壓縮列表轉(zhuǎn)換條件進行放寬

存Key-Value時止毕,object后加整數(shù)作為ID模蜡,數(shù)據(jù)量大,取模優(yōu)化扁凛,相同前綴Key做hash忍疾。db空間相當(dāng)大的哈希表,把本來分配給整個db空間的Key谨朝,按照不同的前綴分成小的哈希表卤妒,里面數(shù)據(jù)小,用壓縮列表保存叠必。

4.2 避免BigKey和HotKey

(1)BigKey:http://www.reibang.com/writer#/notebooks/27207290/notes/79614564

(2)HotKey

集群沒合理用:訪問鍵值集中荚孵,遠(yuǎn)高于其他,造成單點故障纬朝,導(dǎo)致集群不可用

拆分HotKey收叶,平均散落各實例

4.3 合理的設(shè)置過期時間

頻繁刪除,會引起阻塞共苛。

4.4 命名規(guī)范

沒有MySQL隔離級別判没、MVCC等數(shù)據(jù)隔離特性,命名額外重要隅茎。

用SDS來保存Key澄峰,大小受String限制,最大512M辟犀。創(chuàng)建時根據(jù)長度選擇底層的實現(xiàn)編碼俏竞。Key設(shè)計最好簡介、明了。

用業(yè)務(wù)名前綴魂毁,防止Key沖突玻佩;不能用特殊字符!

https://blog.csdn.net/xiangnan129/article/details/54928672

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末席楚,一起剝皮案震驚了整個濱河市咬崔,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌烦秩,老刑警劉巖垮斯,帶你破解...
    沈念sama閱讀 218,607評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異只祠,居然都是意外死亡兜蠕,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,239評論 3 395
  • 文/潘曉璐 我一進店門抛寝,熙熙樓的掌柜王于貴愁眉苦臉地迎上來牺氨,“玉大人,你說我怎么就攤上這事墩剖。” “怎么了夷狰?”我有些...
    開封第一講書人閱讀 164,960評論 0 355
  • 文/不壞的土叔 我叫張陵岭皂,是天一觀的道長。 經(jīng)常有香客問我沼头,道長爷绘,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,750評論 1 294
  • 正文 為了忘掉前任进倍,我火速辦了婚禮土至,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘猾昆。我一直安慰自己陶因,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,764評論 6 392
  • 文/花漫 我一把揭開白布垂蜗。 她就那樣靜靜地躺著楷扬,像睡著了一般。 火紅的嫁衣襯著肌膚如雪贴见。 梳的紋絲不亂的頭發(fā)上烘苹,一...
    開封第一講書人閱讀 51,604評論 1 305
  • 那天,我揣著相機與錄音片部,去河邊找鬼镣衡。 笑死,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的廊鸥。 我是一名探鬼主播望浩,決...
    沈念sama閱讀 40,347評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼黍图!你這毒婦竟也來了曾雕?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,253評論 0 276
  • 序言:老撾萬榮一對情侶失蹤助被,失蹤者是張志新(化名)和其女友劉穎剖张,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體揩环,經(jīng)...
    沈念sama閱讀 45,702評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡搔弄,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,893評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了丰滑。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片顾犹。...
    茶點故事閱讀 40,015評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖褒墨,靈堂內(nèi)的尸體忽然破棺而出炫刷,到底是詐尸還是另有隱情,我是刑警寧澤郁妈,帶...
    沈念sama閱讀 35,734評論 5 346
  • 正文 年R本政府宣布浑玛,位于F島的核電站,受9級特大地震影響噩咪,放射性物質(zhì)發(fā)生泄漏顾彰。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,352評論 3 330
  • 文/蒙蒙 一胃碾、第九天 我趴在偏房一處隱蔽的房頂上張望涨享。 院中可真熱鬧,春花似錦仆百、人聲如沸厕隧。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,934評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽栏账。三九已至,卻和暖如春栈源,著一層夾襖步出監(jiān)牢的瞬間挡爵,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,052評論 1 270
  • 我被黑心中介騙來泰國打工甚垦, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留茶鹃,地道東北人涣雕。 一個月前我還...
    沈念sama閱讀 48,216評論 3 371
  • 正文 我出身青樓,卻偏偏與公主長得像闭翩,于是被迫代替她去往敵國和親挣郭。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,969評論 2 355

推薦閱讀更多精彩內(nèi)容