Redis重啓數據丟失問題
版權聲明:本文爲博主原創文章,轉載請寫明轉載地址 https://blog.csdn.net/zrainload/article/details/79304499
在Linux系統中,Redis本來是有數據的,但在Linux系統重啓後,Redis中的數據全部丟失。經過幾次測試都一樣,只有在Linux系統重啓纔會丟失,Redis重啓應該是沒有問題的。
這個問題只在Linux系統才存在,在Windows系統是沒有問題的。
二、解決方案
在Linux系統設置一個參數(vm.overcommit_memory)即可解決。
步驟如下:
1、編輯 sysctl.conf 配置文件
vi /etc/sysctl.conf
- 2、檢查sysctl.conf配置文件中的vm.overcommit_memory參數是否爲0,若爲0系統不允許回寫,可將參數vm.overcommit_memory = 1。(如果沒有這個參數,則另起一行增加參數 vm.overcommit_memory 配置,如下):
vm.overcommit_memory = 1
- 3、使配置文件生效
sysctl -p
Redis Save 命令 - 異步保存數據到硬盤
在Linux系統設置一個參數(vm.overcommit_memory)即可解決。
步驟如下:
1、編輯 sysctl.conf 配置文件
vi /etc/sysctl.conf
2、檢查sysctl.conf配置文件中的vm.overcommit_memory參數是否爲0,若爲0系統不允許回寫,可將參數vm.overcommit_memory = 1。(如果沒有這個參數,則另起一行增加參數 vm.overcommit_memory 配置,如下):
vm.overcommit_memory = 1
3、使配置文件生效
sysctl -p
******************指定在多長時間內,有多少次更新操作,就將數據同步到數據文件,可以多個條件配合************
• save <seconds> <changes>
• Redis默認配置文件中提供了三個條件:
• save 900 1
• save 300 10
• save 60 10000
• 分別表示900秒(15分鐘)內有1個更改,300秒(5分鐘)內有10個更改以及60秒內有10000個更改。