舉幾個(gè)例子
看延遲 60 秒內(nèi)的最大響應(yīng)延遲:
慢日志(slowlog)
慢查詢,就會(huì)導(dǎo)致后面的請(qǐng)求發(fā)生排隊(duì),對(duì)于客戶端來(lái)說(shuō),響應(yīng)延遲也會(huì)變長(zhǎng)。
bigkey
大對(duì)象
集中過(guò)期
一般有兩種方案來(lái)規(guī)避這個(gè)問(wèn)題:
1.集中過(guò)期 key 增加一個(gè)隨機(jī)過(guò)期時(shí)間,把集中過(guò)期的時(shí)間打散,降低 Redis 清理過(guò)期 key 的壓力
2.如果你使用的 Redis 是 4.0 以上版本,可以開(kāi)啟 lazy-free 機(jī)制,當(dāng)刪除過(guò)期 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ù)被換到磁盤(pán)上后,Redis 再訪問(wèn)這些數(shù)據(jù)時(shí),就需要從磁盤(pán)上讀取,訪問(wèn)磁盤(pán)的速度要比訪問(wèn)內(nèi)存慢幾百倍!
內(nèi)存碎片
Redis 4.0 版本,它正好提供了自動(dòng)碎片整理的功能,可以通過(guò)配置開(kāi)啟碎片自動(dòng)整理