Redis低版本無法向前相容高版本RDB檔案

panpong發表於2016-12-06

摘自:Redis低版本無法向前相容高版本RDB檔案

 

今天做了一個操作導致Redis無法啟動。

在部署某一程式的過程中,先是單獨安裝了3.2.3版本的redis,安裝完成後ps一下,redis已經啟動。然後又使用安裝包部署程式,安裝包中包含一個2.8.13版本的redis,直接把之前裝的3.2.3redis給覆蓋掉了。程式安裝完成後發現redis程式沒了,而且透過service redis_6379 restart無法啟動。

 

怎麼回事?檢視/var/log/redis_6379.log發現如下錯誤:

 

[31934] 26 Sep 11:31:47.087 # Can’t handle RDB format version 7

[31934] 26 Sep 11:31:47.087 # Fatal error loading the DB: Invalid argument. Exiting.

 

哦,當前版本的redis無法處理version=7RDB格式,這才明白是相容性問題,但這種“向前相容”一般很難做到的。

 

解決辦法:刪除rdb檔案/var/lib/redis/6379/dump.rdb,重啟redis就行了。


這篇文章解決了我的問題;讓我意識到我伺服器竟然有兩個版本的redis,一個是rpm安裝的2.8,命令目錄在/usr/bin下,一個是原始碼安裝的3.2,命令目錄在/usr/local/bin下;當我透過service 或者systemctl命令啟動redis時,資料庫版本為2.8,而透過redis-server命令啟動資料庫時則是3.2;

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16976507/viewspace-2129880/,如需轉載,請註明出處,否則將追究法律責任。

相關文章