redis錯誤:redis.exceptions.ResponseError: 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ù)庫快照,但它目前不能持久化到硬盤。用來修改集合數(shù)據(jù)的命令不能用。請查看Redis日志的詳細(xì)錯誤信息。
解決方法:
127.0.0.1:6379> config set stop-writes-on-bgsave-error no
OK
127.0.0.1:6379> lpush myColour "red"
(integer) 1
127.0.0.1:6379> SET runoobkey redis
配置文件修改:
1、修改redis.conf文件:vi打開redis-server配置的redis.conf文件,
然后使用快捷匹配模式:/stop-writes-on-bgsave-error定位到stop-writes-on-bgsave-error字符串所在位置,接著把后面的yes設(shè)置為no即可。
2、在/etc/sysctl.conf 添加一項 ‘vm.overcommit_memory = 1’ ,然后重啟(或者運(yùn)行命令’sysctl vm.overcommit_memory=1’ )使其生效。)內(nèi)核參數(shù)overcommit_memory
overcommit_memory是內(nèi)存分配策略
設(shè)置內(nèi)存分配策略(可選,根據(jù)服務(wù)器的實際情況進(jìn)行設(shè)置)
/proc/sys/vm/overcommit_memory
可選值:0、1、2。
0, 表示內(nèi)核將檢查是否有足夠的可用內(nèi)存供應(yīng)用進(jìn)程使用;如果有足夠的可用內(nèi)存,內(nèi)存申請允許;否則,內(nèi)存申請失敗,并把錯誤返回給應(yīng)用進(jìn)程。
1, 表示內(nèi)核允許分配所有的物理內(nèi)存,而不管當(dāng)前的內(nèi)存狀態(tài)如何。
2, 表示內(nèi)核允許分配超過所有物理內(nèi)存和交換空間總和的內(nèi)存
有三種方式修改內(nèi)核參數(shù),但要有root權(quán)限:
編輯vim /etc/sysctl.conf ,改vm.overcommit_memory=1,然后sysctl -p 使配置文件生效
sysctl vm.overcommit_memory=1
echo 1 > /proc/sys/vm/overcommit_memory 不需要啟機(jī)器就生效