【案例】redis-server 大量key過期不釋放空間的

環境: 某個redis集羣(redis4.0.11的主從環境)

背景:這個redis集羣開發有大量的key的寫入和過期,導致內存急劇上漲。


使用 rdb工具 (git地址:https://github.com/sripathikrishnan/redis-rdb-tools) 分析下rdb文件後,發現內存中有很多的key,過期時間早到了,但是實際上還存在。原因: 因爲redis的key清理策略是懶惰刪除(lazy free),我們可以嘗試調大,這樣每秒鐘執行的redis的內部cronjob次數將增大,也就可以加快key的淘汰。


操作步驟:

1、config get hz   看到當前redis-server 默認值是10 


2、config set hz 50    我們這裏將hz設置爲50,然後觀察段時間看看(注意hz的設置值可以以10爲步長逐步增加,但是一般不要超過100)


下面 2張圖,是我從監控上截取的。可以看到 設置後迅速有大量的key被淘汰了。

image.png

image.png




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章