Redis下一小节:6-1 Redis常见问题
Redis AOF
AOF:
- RDB现存问题
- AOF三种策略
- 什么是AOF
- AOF重写
1、RDB现存问题
(1)耗时、耗性能
如果Redis data非常大,持久化RDB是非常耗时、耗性能的。
(2)不可控、丢失数据
你不能保证Redis宕机时数据不丢失。
2、AOF运行原理
(1)AOF文件创建
(2)Redis通过AOF文件恢复数据
3、AOF三种策略
(1)always
Redis每执行一条命令,都会写入到AOF文件中。
(2)everysec
Redis每隔一秒会把执行的命令写到AOF文件。
(3)no
(4)三种策略对比
4、AOF重写
(1)什么是AOF重写
AOF重写就是把AOF中重复的、过期的、没有用进行合并和删除。
(2)AOF重写作用
减少硬盘占用量
加速恢复速度
(3)AOF重写实现两种方式
bgrewriteaof:
AOF重写配置:
(4)AOF自动触发时机
(5)AOF重写流程
5、AOF配置
#默认是no,改为yes表示打开AOF持久化
appendonly yes
#AOF持久化文件名称命名
appendfilename “appendonly-${port}.aof”
#AOF持久化策略:每秒执行一次
appendfsync everysec
#AOF持久化文件存储目录
dir /bigdiskpath
#以性能优先,AOF允许短时间不发生重写的情况,所以设置为yes
no-appendfsync-on-rewrite yes
#AOF文件增长率,当AOF增长率达到100%时,就会自动重写AOF文件
auto-aof-rewrite-percentage 100
#AOF需要重写的最小尺寸
auto-aof-rewrite-min-size 64mb
6、试验
(1)查看redis-6379.conf配置文件:
(2)修改aof配置
通过命令方式修改aof配置
(3)AOF试验
执行多个redis命令
查看appendonly.aof文件中写入的redis命令
解释下参数含义:
*2表示下一条命令有2个参数:SELECT和0(选中0号数据库)
$6表示下面SELECT有6个字节
$1表示下面0有1个字节
同理,下面所有参数都是按照这个套路来解释的。
……
执行bgrewriteaof
再次查看appendonly.aof文件,看aof文件是否重写了
两次incr counter、incr counter命令 被重写成 set counter 2