這提示及其友好,雖長(zhǎng)但我喜歡:)
Redis問(wèn)題
MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on disk. Commands that may modify the data set are disabled. Please check Redis logs for details about the error.
Redis被配置為保存數(shù)據(jù)庫(kù)快照,但它目前不能持久化到硬盤(pán)。用來(lái)修改集合數(shù)據(jù)的命令不能用。請(qǐng)查看Redis日志的詳細(xì)錯(cuò)誤信息。
原因
強(qiáng)制關(guān)閉Redis快照導(dǎo)致不能持久化。本質(zhì)上是內(nèi)存不足導(dǎo)致的。因此需要進(jìn)行相關(guān)的內(nèi)存處理:
修改redis config
修改快照備份的目錄,即將快照重定向到其他目錄
修改主機(jī)內(nèi)存配置
解決方案1
將stop-writes-on-bgsave-error設(shè)置為no,這個(gè)方式是直接關(guān)閉保存持久化快照
127.0.0.1:6379> config set stop-writes-on-bgsave-error no
這個(gè)在生產(chǎn)中可能會(huì)出現(xiàn)一些問(wèn)題,這個(gè)然而這個(gè)方法治標(biāo)不治本,他只是讓我們“忽略”他而已,使用之前需要確認(rèn)bgsave失敗的原因,比如當(dāng)redis用于緩存、會(huì)話(huà)的場(chǎng)景的時(shí)候,這么做是允許的
解決方案2
將備份的rdb文件,重定向到目錄
CONFIG SET dir /tmp/some/directory/other/than/var
CONFIG SET dbfilename temp.rdb
使用這個(gè)命令之后,需要確保bgsave_in_progress返回結(jié)果是0
解決方案3
在內(nèi)核運(yùn)行時(shí)動(dòng)態(tài)地修改內(nèi)核的運(yùn)行參數(shù)
echo \\\'vm.overcommit_memory = 1\\\' >> /etc/sysctl.conf
sysctl vm.overcommit_memory=1
更多關(guān)于云服務(wù)器,域名注冊(cè),虛擬主機(jī)的問(wèn)題,請(qǐng)?jiān)L問(wèn)西部數(shù)碼官網(wǎng):ps-sw.cn