Redis內存滿了怎麼辦(新年快樂)

Redis內存滿了怎麼辦(新年快樂)

 

    入我相思門,知我相思苦。

      長相思兮長相憶,短相思兮無窮極。

 

一、配置文件

Redis長期使用或者不設置過期時間,導致內存爆滿或不足,可以到Redis的配置文件redis.conf 文件中,配置參數 maxmemory 的大小。一般的項目maxmemory設置爲3~5G就夠用了。

二、命令

通過命令修改,Redis支持運行時通過命令動態修改內存大小。

1 //設置Redis最大佔用內存大小爲100M
2 127.0.0.1:6379> config set maxmemory 100mb
3 //獲取設置的Redis能使用的最大內存大小
4 127.0.0.1:6379> config get maxmemory

三、修改Redis淘汰策略

Redis提供了6種的淘汰策略:

  • noeviction(默認策略):若是內存的大小達到閥值的時候,所有申請內存的指令都會報錯;
  • allkeys-lru:所有key都是使用LRU算法進行淘汰;
  • volatile-lru:所有設置了過期時間的key使用LRU算法進行淘汰;
  • allkeys-random:所有的key使用隨機淘汰的方式進行淘汰;
  • volatile-random:所有設置了過期時間的key使用隨機淘汰的方式進行淘汰;
  • volatile-ttl:所有設置了過期時間的key根據過期時間進行淘汰,越早過期就越快被淘汰。

部分策略使用場景:

  • 若在Redis中的數據有一部分是熱點數據,而剩下的數據是冷門數據,或者我們不太清楚我們應用的緩存訪問分佈狀況,這時可以使用allkeys-lru。
  • 若所有的數據訪問的頻率大概一樣,就可以使用allkeys-random的淘汰策略。

Redis的淘汰策略也可以在redis.conf 配置文件中配置:

同時,Redis淘汰策略也可以通過命令的方式進行配置:

1 // 獲取maxmemory-policy配置
2 127.0.0.1:6379> config get maxmemory-policy
3 // 設置maxmemory-policy配置爲allkeys-lru
4 127.0.0.1:6379> config set maxmemory-policy allkeys-lru

 

 

  

 

 

入我相思門,知我相思苦。

長相思兮長相憶,短相思兮無窮極。

 

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