redis持久化之-rdb
首先看一下持久化的配置
################################ SNAPSHOTTING ################################
save 900 1 #900秒内只要一个k值被编辑就会存盘(900秒保存一次)
save 300 10
save 60 10000
rdbchecksum yes #存盘时是否压缩
dbfilename dump.rdb #存盘时的文件名
dir ../ #存盘的目录(../表示的是该文件所在的目录,而不是其上级目录)
这里为了方便测试,我们把save 60 10000改为 save 60 5;一分钟内只要改变5个key就自动帮我们存盘备份
操作
[root@localhost src]# ./redis-server ../redis.conf
[root@localhost src]# ./redis-cli
127.0.0.1:6379> set k1 v1
OK
127.0.0.1:6379> set k2 v2
OK
127.0.0.1:6379> set k3 v3
OK
127.0.0.1:6379> set k4 v4
OK
127.0.0.1:6379> set k5 v5
OK
127.0.0.1:6379> set k6 v6
OK
一分钟后看到redis.conf同级目录下出现了“dump.rdb”;
一般我们需要把备份的文件另外存一个文件名或者存到另外台服务器中,这样比较保险
哪些操作会导致redis存盘呢?
- 满足save的几个条件
- shutdown操作
- flushall操作
什么时候从dump.rdb中恢复呢?
重启redis服务时,会根据配置的路径和文件名找到xxx.rdb然后读入内存中
redis持久化之-aof
首先看一下aof的配置文件
############################## APPEND ONLY MODE ###############################
appendonly no #aof方式默认关闭
appendfilename "appendonly.aof" #文件名
appendfsync everysec #同步模式(可选no always everysec)
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
aof-load-truncated yes
文章解释:
当appendonly.aof和dump.rdb同事存在时,redis从哪个文件恢复到内存呢?
从appendonly.aof