您好,登錄后才能下訂單哦!
Redis數據庫中fork進程出現分配不到內存如何解決?相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。
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數據庫中fork進程出現分配不到內存如何解決的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。