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