redis: 持久化(十二)

RDB配置

RDB 是 Redis 默认的持久化方案。在指定的时间间隔内,执行指定次数的写操作,则会将内存中的数据写入到磁盘中。即在指定目录下生成一个dump.rdb文件。Redis 重启会通过加载dump.rdb文件恢复数据

RDB核心规则配置:

save 900 1    #表示900 秒内如果至少有 1 个 key 的值变化,则保存
save 300 10   #表示300 秒内如果至少有 10 个 key 的值变化,则保存
save 60 10000 #表示60 秒内如果至少有 10000 个 key 的值变化,则保存
#如果你只是用Redis的缓存功能,不需要持久化,可以直接一个空字符串来实现停用:save ""

stop-writes-on-bgsave-error yes #默认值为yes。当启用了RDB且最后一次后台保存数据失败,Redis是否停止接收数据

rdbcompression yes #默认值是yes。对于存储到磁盘中的快照,可以设置是否进行压缩存储,会耗cpu资源

rdbchecksum yes #默认值是yes。在存储快照后,我们还可以让redis使用CRC64算法来进行数据校验,但是这样做会增加大约10%的性能消耗,如果希望获取到最大的性能提升,可以关闭此功能

dbfilename dump.rdb #设置快照的文件名,默认是 dump.rdb

dir ./ #设置快照文件的存放路径 默认为安装目录

RDB持久化演示

1:修改配置文件redis.conf
save 60 5 #60秒执行5次操作就持久化保存
2:删除安装目录下的持久化文件
rm -rf dump.rdb
3:重启redis服务
127.0.0.1:6379> shutdown #停止redis

redis-server redis-config/redis.conf  #启动redis
5:设置五个key 触发持久化
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
6:检查dump.rdb是否生成

7:重启redis 看能否获取刚才set的key
127.0.0.1:6379> get k1
"v1"
注意

SHUTDOWN 和 FLUSHALL 命令都会触发RDB快照!
只需要备份dump.rdb即可实现备份和恢复!

AOF配置

如果RDB和AOF同时开启 默认使用AOF持久化方案
RDB核心规则配置:

#AOF持久化配置
appendonly no #不开启  默认redis使用的是rdb方式持久化

appendfilename "appendonly.aof" #aof文件名,默认是"appendonly.aof"

appendfsync:everysec  #aof持久化策略的配置;no表示不执行fsync,由操作系统保证数据同步到磁盘,速度最快;always表示每次写入都执行fsync,以保证数据同步到磁盘;everysec表示每秒执行一次fsync,可能会导致丢失这1s数据

AOF持久化演示

1:修改配置文件redis.conf
appendonly yes #开启aof持久化方案
2:重启redis服务
127.0.0.1:6379> shutdown #停止redis

redis-server redis-config/redis.conf  #启动redis
3:设置一个key触发持久化
127.0.0.1:6379> set name applesnt
OK
4:查看appendonly.aof里面的内容
[root@ruiyiserver bin]# cat appendonly.aof 
*2
$6
SELECT
$1
0
*3
$3
set
$4
name
$8
applesnt
posted @ 2020-04-09 23:04  努力的校长  阅读(105)  评论(0编辑  收藏  举报