MISCONF Redis is configured to save RDB snapshots, but it is currently not able to persist on disk.
Redis Bgsave 命令用于在后臺異步保存當前數據庫的數據到磁盤。
BGSAVE 命令執行之后立即返回 OK ,然后 Redis fork 出一個新子進程,原來的 Redis 進程(父進程)繼續處理客戶端請求,而子進程則負責將數據保存到磁盤,然后退出。
語法
redis Bgsave 命令基本語法如下:
redis 127.0.0.1:6379> BGSAVE
原因:
在BGSAVE時,Redis會fork一個子進程,把數據保存到硬盤上。你可以通過查看日志來獲取BGSAVE失敗的原因(Linux系統里Redis日志文件通常是在/var/log/redis/redis-server.log),大多數時候BGSAVE失敗的原因是fork進程分配不到內存。更多時候,fork進程分配不到內存是因為跟操作系統的優化相沖突,即使操作系統有足夠的內存。
解決方法一:
修改redis.conf文件:
vim redis.conf
然后使用快捷匹配模式:/stop-writes-on-bgsave-error定位到stop-writes-on-bgsave-error字符串所在位置,接著把后面的yes設置為no即可。
解決方法二:
修改sysctl.conf文件,
sudo vim /etc/sysctl.conf
添加配置:
vm.overcommit_memory=1
執行命令,使其生效
sudo sysctl -p /etc/sysctl.conf
重啟Redis。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
您可能感興趣的文章:- 查看Redis內存信息的命令
- 一次關于Redis內存詭異增長的排查過程實戰記錄
- 淺談redis內存數據的持久化方式
- 降低PHP Redis內存占用
- 淺談redis采用不同內存分配器tcmalloc和jemalloc
- 將MongoDB作為Redis式的內存數據庫的使用方法
- Redis教程(十四):內存優化介紹
- Redis教程(十一):虛擬內存介紹
- redis數據庫查找key在內存中的位置的方法