Redis之--rdb持久化

持久化:通俗講,下次開機還有數據,斷電後不會丟失數據,存放於磁盤。redis

Redis:rdb快照持久化
每隔N分鐘或N次寫操做後,從內存dump數據造成RDB文件。壓縮,放在備份目錄。服務器

參數詳解:
從下往上看
save 900 1 #900秒內有1個key的變化,
save 300 10 #300秒內有10個key的變化,
save 60 10000 #60秒內有10000次寫入,應該保存
stop-writes-on-bgsave-error yes #後臺存儲錯誤中止寫
redis server主進程在導出的時候,客戶端請求,沒法回饋。在新版本的redis中,派生出一個子進程專門導出進程。若是導出過程當中發現磁盤不夠了,可是進程還在工做。勢必會出現數據不一致。這裏就有參數出現,若是rdb導出過程當中,出錯,那麼就中止客戶端寫入。
rdbchecksum yes 重啓服務器,從rdb導入內存的時候檢測
dbfilename dump rdb #設置rdb文件名
dir #設置工做目錄,rdb文件會寫入該路徑ide

實驗:
1,在/var/下建立dir目錄
2,修改redis配置文件,加入上面參數,如dir /var/dir指定rdb存放路徑
3,重啓進程,刪除原來的rdb生成的文件
4,利用自帶工具,生成10000個key
./redis-benchmark -n 10000
處理的請求數:
99.76% <= 1 milliseconds
100.00% <= 1 milliseconds
98039.22 requests per second 1秒的請求
5,查看/var/dir下是否有文件產生。
6,登錄redis設置一個鍵值
127.0.0.1:6379> set site www.zixue.it
OK
7,kill redis進程
[root@test-laoyangtest dir]# pkill -9 redis
[root@test-laoyangtest bin]# ./redis-cli
Could not connect to Redis at 127.0.0.1:6379: Connection refused
Could not connect to Redis at 127.0.0.1:6379: Connection refused
8,啓動redis進程
[root@test-laoyangtest redis]# ./bin/redis-server ./redis.conf
9,查看設定的鍵值還在不
[root@test-laoyangtest redis]# ./bin/redis-cli
127.0.0.1:6379> get site
"www.zixue.it"工具

注意:有必定的缺點,由於會有異常掉電的狀況。如以前打點保存了一次數據,在後面的某一點又保存了一次數據。這個時候rdb就不行了。後面會繼續講AOF的工做方式。server

相關文章
相關標籤/搜索