1、shutdown服務(wù)或者殺掉進(jìn)程測試數(shù)據(jù)是否丟失
成都創(chuàng)新互聯(lián)堅持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:網(wǎng)站設(shè)計、成都網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的石屏網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!關(guān)閉RDB持久化,啟動AOF持久化,重啟redis服務(wù)。
設(shè)置值
127.0.0.1:6379> mset k1 v1 k2 v2
OK
127.0.0.1:6379> keys *
1) "k2"
2) "k1"
127.0.0.1:6379> get k1?
"v1"
127.0.0.1:6379> get k2
"v2"
shutdown服務(wù)
127.0.0.1:6379> shutdown
啟動redis服務(wù)
查看數(shù)據(jù)還在
redis-cli -a Redis2019!
Warning: Using a password with '-a' option on the command line interface may not be safe.
127.0.0.1:6379> keys *
1) "k2"
2) "k1"
殺掉redis進(jìn)程,啟動redis服務(wù)
查看值還在
redis-cli -a Redis2019!
Warning: Using a password with '-a' option on the command line interface may not be safe.
127.0.0.1:6379> keys *
1) "k2"
2) "k1"
2、測試服務(wù)異常導(dǎo)致appendonly.aof 文件亂碼
AOF持久化是把操作都寫進(jìn)了文件appendonly.aof?
查看文件
cat appendonly.aof?
*2
$6
SELECT
$1
0
*5
$4
mset
$2
k1
$2
v1
$2
k2
$2
v2
編輯文件,填寫內(nèi)容代替文件錯亂
vi appendonly.aof?
sfsbdd
1213fns
*2
$6
SELECT
$1
0
*5
$4
mset
$2
k1
$2
v1
$2
k2
$2
v2
dshfs
sdfksh5&
khdfjsj%$$
oguduog7&*
重啟redis服務(wù),訪問redis發(fā)現(xiàn)失敗
redis-cli -a Redis2019!
Warning: Using a password with '-a' option on the command line interface may not be safe.
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
使用fix命令修復(fù)文件
[root@master1 data]# redis-check-aof --fix appendonly.aof?
0x? ? ? ? ? ? ? 45: Expected prefix '*', got: 'd'
AOF analyzed: size=114, ok_up_to=69, diff=45
This will shrink the AOF from 114 bytes, with 45 bytes, to 69 bytes
Continue? [y/N]: y
Successfully truncated AOF
查看文件發(fā)現(xiàn)已經(jīng)修復(fù)
cat appendonly.aof?
*2
$6
SELECT
$1
0
*5
$4
mset
$2
k1
$2
v1
$2
k2
$2
v2
啟動redis服務(wù),訪問redis查看數(shù)據(jù)沒有問題
redis-cli -a Redis2019!
Warning: Using a password with '-a' option on the command line interface may not be safe.
127.0.0.1:6379> keys *
1) "k1"
2) "k2"
127.0.0.1:6379> del k1?
(integer) 1
127.0.0.1:6379> del k2
(integer) 1
127.0.0.1:6379> mset k5 v5 k6 v6
OK
127.0.0.1:6379> keys *
1) "k5"
2) "k6"
編輯redis.conf,打開RDB持久化
重啟redis服務(wù),訪問redis,發(fā)現(xiàn)數(shù)據(jù)還是只有AOF持久化的數(shù)據(jù),并沒有之前RDB持久化的數(shù)據(jù),正好證明了同時打開兩種持久化配置的情況下會首先使用AOF持久化的數(shù)據(jù)。
redis-cli -a Redis2019!?
Warning: Using a password with '-a' option on the command line interface may not be safe.
127.0.0.1:6379> keys *
1) "k6"
2) "k5"
3、刪除所有數(shù)據(jù),利用AOF的特點(diǎn)進(jìn)行修復(fù)
刪除數(shù)據(jù),停止服務(wù)
127.0.0.1:6379> flushall
OK
127.0.0.1:6379> shutdown
編輯文件
vi data/appendonly.aof?
*2
$6
SELECT
$1
0
*5
$4
mset
$2
k1
$2
v1
$2
k2
$2
v2
*2
$6
SELECT
......
SELECT
$1
0
*1
$8
flushall
刪除最后一行 flushall
啟動redis服務(wù)
發(fā)現(xiàn)數(shù)據(jù)恢復(fù)
redis-cli -a Redis2019!?
Warning: Using a password with '-a' option on the command line interface may not be safe.
127.0.0.1:6379> keys *
1) "k6"
2) "k5"
參考:
https://blog.csdn.net/qq_33101675/article/details/80631992
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。