Redis: OOM command not allowed when used memory > ‘maxmemory’

來源:互聯網
上載者:User

標籤:通過   vol   volatile   lru演算法   tor   異常   sed   允許   use   

現象

日誌裡出現異常:

OOM command not allowed when used memory > ‘maxmemory‘
原因

記憶體已滿,不允許再存資料了,可以通過redis-cli 查看redis的具體資訊

127.0.0.1:6379> info memory# Memoryused_memory:4120248used_memory_human:3.93Mused_memory_rss:11509760used_memory_peak:1977983104used_memory_peak_human:1.84Gused_memory_lua:36864mem_fragmentation_ratio:2.79mem_allocator:jemalloc-3.6.0

註:

  • used_memory_human表示已用記憶體
  • used_memory_rss表示系統給redis分配的記憶體(即常駐記憶體)
  • mem_fragmentation_ratio=used_memory_rss/used_memory比例,一般情況下,used_memory_rss略高於used_memory,當記憶體片段較多時,則mem_fragmentation_ratio會較大,可以反映記憶體片段是否很多
解決

註:如修改了設定檔需重啟redis

1. 增加redis記憶體,修改redis.conf

maxmemory 2gb

2. 修改redis儲存策略

預設的redis設定是非常保守的,即記憶體超限後就不在儲存,可以把策略修改為LRU演算法(最近最少使用演算法)——新儲存的資訊會替換掉舊的資訊,從而不會是記憶體越線,修改redis.conf

maxmemory-policy volatile-lru

3. 少往reids存資料

是否有必要把這麼多資料存入redis?

 

Redis: OOM command not allowed when used memory > ‘maxmemory’

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.