大(da)(da)Key和(he)熱(re)Key問(wen)(wen)題是Redis使用(yong)中的常見(jian)問(wen)(wen)題,本(ben)章節主要(yao)介紹對(dui)Redis實(shi)例進行大(da)(da)Key和(he)熱(re)Key分析(xi),通過大(da)(da)Key和(he)熱(re)Key分析(xi),可以監控到(dao)占用(yong)空間過大(da)(da)的Key,以及(ji)該Redis實(shi)例存儲數(shu)據中被訪問(wen)(wen)最多(duo)的Key。
大Key分析使用限制和說明:
- 所有Redis實例都支持。
- 在大Key分析時,會遍歷Redis實例中的所有Key,因此分析所需要時間取決于Key的數量。
- 在進行大Key分析時,建議在業務低谷期間進行,且不要與配置的自動備份時間重疊。
- 如果是主備和集群實例,大Key分析是對備節點的分析,對實例性能影響較小。如果是單機實例,由于只有一個節點,是對主節點進行分析,客戶訪問性能會略有影響(不高于10%),所以建議在業務低谷期進行大Key分析。
- 對于大Key分析結果,每個Redis實例默認最多保存100條記錄(string類型保存top20,list/set/zset/hash類型保存top80),當超過100條記錄時會默認刪除最老的分析記錄,而存入最新的記錄。同時,支持用戶在控制臺上手動刪除無用的大Key分析記錄。
熱Key分析使用限制和說明:
- 只有Redis 4.0/Redis 5.0/Redis 6.0實例支持,并且實例maxmemory-policy參數必須配置為allkeys-lfu或者volatile-lfu。
- 在熱Key分析時,會遍歷Redis實例中的所有Key,因此分析所需要時間取決于Key的數量。
- 配置自動熱key分析時,要考慮不要在業務高峰期進行,避免影響業務,同時也不要過了高峰期太久,避免分析結果不準確。
- 熱key分析是對于主節點的分析,在進行分析時,客戶訪問性能會略有影響(不高于10%)。
- 對于熱Key分析結果,每個Redis實例默認最多保存100條記錄。當超過100條記錄時會默認刪除最老的分析記錄,而存入最新的記錄。同時,支持用戶在控制臺上手動刪除無用的熱Key分析記錄
說明建議在業務低峰時段執行大Key和熱Key分析,降低CPU被用滿的可能。
大Key分析操作步驟
步驟(zou) 1 登錄分布式緩存服(fu)務(wu)管理控制臺。
步驟 2 在管理控制臺左上角單擊
,選擇區域和項目。
步驟 3 單擊(ji)左側(ce)菜單欄(lan)的“緩存管理”。進入緩存管理頁面。
步驟 4 單擊需要緩存(cun)分(fen)析的(de)Redis實例名稱,進(jin)入該實例的(de)基本信(xin)息頁面。
步驟 5 單擊"分(fen)析與(yu)診(zhen)斷(duan)>緩存分(fen)析"頁簽(qian)。
步驟 6 在“緩(huan)存分析”頁面的“大Key分析”頁簽,您可(ke)以立即對實例進行大Key分析或(huo)者設置(zhi)定時任(ren)務(wu),每日自動分析。
步驟 7 當分析任務結束后(hou),可以單擊分析列(lie)表“操作”列(lie)的“查看(kan)(kan)”,查看(kan)(kan)分析結果。
您可以查詢當前(qian)實例不同數據類型的大Key分(fen)析結果。
說明分析結果中,string類型顯示top20的記錄,list/set/zset/hash類型顯示top80的記錄。具體分析記錄,請以實際返回結果為準。
大(da)Key分析結(jie)果參數說(shuo)明
| 參數名稱 | 參數說明 |
|---|---|
| Key名稱 | 大Key的名稱。 |
| 類型 | 大Key的類型,包括string和list/set/zset/hash數據類型。 |
| 大小 | 大Key的Value的大小或元素的個數。 |
| Database | 大Key所在的DB。 |
熱Key分析操作步驟
步驟 1 登錄分布式(shi)緩存(cun)服務管理控(kong)制臺(tai)。
步驟 2 在管理控制臺左上角單擊
,選擇區域和項目。
步驟(zou) 3 單擊(ji)左側菜單欄的“緩(huan)存(cun)管理”。進入緩(huan)存(cun)管理頁面。
步(bu)驟(zou) 4 單擊需(xu)要(yao)緩存分析的Redis實(shi)例(li)名稱(cheng),進(jin)入該實(shi)例(li)的基本(ben)信息頁面。
步(bu)驟 5 單擊"分析(xi)與診(zhen)斷>緩存分析(xi)"頁簽。
步驟 6 在“緩存(cun)分析”頁(ye)面的(de)“熱(re)Key分析”頁(ye)簽(qian),您可以對實例(li)進(jin)行熱(re)Key分析或(huo)者設置定(ding)時(shi)任務,每日自動分析。
說明如果無法執行熱Key分析,您需要先將maxmemory-policy參數配置為allkeys-lfu或者volatile-lfu,才能執行熱Key分析。如果是已經配置為allkeys-lfu或者volatile-lfu,即可立即進行熱Key分析。
步驟 7 當分析(xi)任務結束后,可以(yi)單(dan)擊分析(xi)列(lie)(lie)表“操作”列(lie)(lie)的“查(cha)看(kan)”,查(cha)看(kan)分析(xi)結果。
您(nin)可以查(cha)詢(xun)當前(qian)實例的熱Key分析結果。
說明熱Key分析結果,每個Redis實例默認顯示top100的記錄。
熱(re)Key分(fen)析結果(guo)參數(shu)說明
| 參數名稱 | 參數說明 |
|---|---|
| Key名稱 | 熱Key的名稱。 |
| 類型 | 熱Key的類型,包括String、Hash、List、Set、Sorted Set等數據類型。 |
| 大小 | 熱Key的Value的大小。 |
| 頻度 | 表示某個key在一段時間的訪問頻度,會隨著訪問的頻率而變化。該值并不是簡單的訪問頻率值,而是一個基于概率的對數計數器結果,最大為255(可表示100萬次訪問),超過255后如果繼續頻繁訪問該值并不會繼續增大,同時默認如果每過一分鐘沒有訪問,該值會衰減1。 |
| DataBase | 熱Key所在的DB。 |