redis啟動失敗

2022-03-27 23:33:21 字數 1186 閱讀 4108

redis.conf 設定的daemonize yes後台執行,使用redis-server redis.conf之後沒有任何反應,以為啟動成功

使用 ps -ef|grep redis 檢視redis程序發現沒有,修改redis.conf配置中的logfile的值,列印日誌例如: logfile  "/usr/local/redis/log/redis.log"

再次使用redis-server redis.conf命令啟動redis,之後再從/usr/local/redis/log/redis.log   redis的日誌檔案中檢視日誌資訊:

24120:m 29 mar 09:59:05.556 * increased maximum number of open files to 10032 (it was originally set to 1024).

...根據上面warning提示資訊進行處理:

echo 1 > /proc/sys/vm/overcommit_memory

echo "vm.overcommit_memory=1" >> /etc/sysctl.conf

echo never > /sys/kernel/mm/transparent_hugepage/enabled

./redis-check-aof --fix

之後重新啟動  redis-server redis.conf成功

解釋:

overcommit_memory引數說明: 設定記憶體分配策略(可選,根據伺服器的實際情況進行設定) /proc/sys/vm/overcommit_memory 可選值:0、1、2。 0, 表示核心將檢查是否有足夠的可用記憶體**用程序使用;如果有足夠的可用記憶體,記憶體申請允許;否則,記憶體申請失敗,並把錯誤返回給應用程序。 1, 表示核心允許分配所有的物理記憶體,而不管當前的記憶體狀態如何。 2, 表示核心允許分配超過所有物理記憶體和交換空間總和的記憶體

redis在dump資料的時候,會fork出乙個子程序,理論上child程序所占用的記憶體和parent是一樣的,比如parent占用的記憶體為8g,這個時候也要同樣分配8g的記憶體給child,如果記憶體無法負擔,往往會造成redis伺服器的down機或者io負載過高,效率下降。所以這裡比較優化的記憶體分配策略應該設定為 1(表示核心允許分配所有的物理記憶體,而不管當前的記憶體狀態如何)。

$  echo  "test" > test

參考:

redis後台啟動失敗問題小結

問題描述 在接受專案的時候,遇到乙個奇葩的問題,redis只能臨時啟動,關閉xshell之後,redis服務也就關閉了。試過的辦法 在網上找了許多資料,試過將daemonize no 改為 yes 然後通過 redis server redis.conf 命令,通過配置檔案來啟動redis。但是未能...

redis安裝服務 啟動失敗 親測

當前redis版本 redis cli v redis cli3.0.503 網上給的命令 在redis所在資料夾下執行 redis server service install redis.windows.conf loglevel verbose 問題1 invalid argument dur...

記錄一次redis啟動失敗

解決方法 1 win r 開啟命令列 2 cd至redis目錄,例如 d redis 3 輸入 redis server.exe redis.windows.conf 觀察是否如圖1 至此,已成功 否則,繼續進行如下操作 4 若啟動redis出現 當前日期 creating server tcp l...