歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Redis 曝新 BUG:內存超限後的死循環

Redis 曝新 BUG:內存超限後的死循環

日期:2017/2/28 15:54:54   编辑:Linux教程

Redis曝出了一個新bug,如果你設定了Redis的maxmemory,並且這個Redis有Slave,那麼當你的maxmemory限制達到後,就會出現死循環。具體原因和流程如下:

  • Redis 達到了配置中設定的maxmemory限制,開始按LRU策略刪除數據
  • 被過期清除的數據會生成DEL 日志推送到Slave
  • 但是如果Slave達到一定數量時,這條DEL日志使用的output buffer空間可能會超過剛剛清除數據空閒出來的空間,這時候會導致空間又超限了
  • 於是整個清除過程就變成了死循環

而且這個問題不僅會出現在Slave的情況下,在寫AOF buffer的時候也會發生同樣的問題。

Redis作者隨後發布了補丁(This fixes issue)對這個問題進行修復。目前此bug的修復已經合並到2.4的主干中,截止目前為止,Redis官方2.4.8穩定版本中已經包含對此問題的修復。

問題地址:issues #327

Copyright © Linux教程網 All Rights Reserved