舉幾個(gè)例子
看延遲 60 秒內(nèi)的最大響應(yīng)延遲:
慢日志(slowlog)
慢查詢,就會(huì)導(dǎo)致后面的請(qǐng)求發(fā)生排隊(duì),對(duì)于客戶端來說,響應(yīng)延遲也會(huì)變長。
bigkey
大對(duì)象
集中過期
一般有兩種方案來規(guī)避這個(gè)問題:
1.集中過期 key 增加一個(gè)隨機(jī)過期時(shí)間,把集中過期的時(shí)間打散,降低 Redis 清理過期 key 的壓力
2.如果你使用的 Redis 是 4.0 以上版本,可以開啟 lazy-free 機(jī)制,當(dāng)刪除過期 key 時(shí),把釋放內(nèi)存的操作放到后臺(tái)線程中執(zhí)行,避免阻塞主線程
fork耗時(shí)嚴(yán)重
主進(jìn)程創(chuàng)建子進(jìn)程,會(huì)調(diào)用操作系統(tǒng)提供的 fork 函數(shù)
使用Swap
當(dāng)內(nèi)存中的數(shù)據(jù)被換到磁盤上后,Redis 再訪問這些數(shù)據(jù)時(shí),就需要從磁盤上讀取,訪問磁盤的速度要比訪問內(nèi)存慢幾百倍!
內(nèi)存碎片
Redis 4.0 版本,它正好提供了自動(dòng)碎片整理的功能,可以通過配置開啟碎片自動(dòng)整理