开发者学堂课程【Redis 入门到精通(进阶篇):持久化-AOF 持久化策略基本操作】学习笔记与课程紧密联系,让用户快速学习知识
课程地址:https://developer.aliyun.com/learning/course/765/detail/13424
持久化-AOF 持久化策略基本操作
内容介绍
一、AOF 写数据过程
二、AOF 写数据三种策略
三、AOF 功能开启
四、演示过程
五、AOF 功能开启
一、AOF 写数据过程
据上图,当客户端发出一条指令到服务器时,服务器接收到指令并没有马上记录,而是放到临时区域,这个区域即 AOF 写命令刷新缓存区,若还有指令依旧放在缓存区,这些指令最终生成.aof 存储文件,到一定阶段,将命令同步到 AOF 文件中。
二、AOF 写数据三种策略
1、always(每次)
每次写入操作均同步到 AOF 文件中,数据零误差,性能较低,不建议使用
2、everysec(每秒)
每秒将缓冲区中的指令同步到 AOF 文件中,数据准确性较高,性能较高,建议使用,也是默认配置
在系统中突然宕机的情况下丢失1秒内的数据
3、no(系统控制)
由操作系统控制每次同步到 AOF 文件的周期,整体过程不可控
三、AOF 功能开启
1、配置
appandonly yes | no
2、作用
是否开启 AOF 持久化功能,默认为不开启状态
3、配置
appandfsync always | everysec | no
4、作用
AOF 写数据策略
四、演示过程
1、测试 always
进入 conf 文件进行修改
[root@localhost conf]# vim redis-6379.conf
开启对 AOF 支持
appendonly yes
指定 AOF 策略
appandfsync always
启动
[root@localhost conf]# redis-server redis-6379.conf
在数据目录中看效果
[root@localhost conf]#cd.
[root@localhost redis-4.0.4]#cd data
[root@localhost data]#ll
total28
-rm-r--r--.1 root root 22979 Oct 13 19:34 6379.log
-rm-r--r--.1 root root 0 Oct 13 19:32 appengonly.aof
(此文件为 AOF 的持久化存储文件)
-rm-r--r--.1 root root 157 Oct 13 19:34 dump-6379.rdb
[root@localhost data]#
在客户端进行连接
[root@localhost /]#redis-cli
127.0.0.1:6379>set name 123
OK
127.0.0.1:6379>
在左侧服务端进行查看,文件里有内容
在客户端接着进行
127.0.0.1:6379> lpush list1 a b c d e
(integer) 5
在左侧服务端接着查看文件,文件变大
从上述演示可看出 always 每执行一个指令时,会记录一次。
在右侧执行 get 指令
127.0.0.1:6379>get name
“123”
127.0.0.1:6379>
在左侧发现没有变化,查看具体内容
[root@localhost data]# Cat appendonly.aof
文件打开后,可以阅读。
从上述演示可看出 always 每执行一个指令,保存一个指令。
2、测试 everysec
进入文件
[root@localhost data]#cd.
[root@localhost redis-4.0.4]#cd conf
[root@localhost conf]# vim redis-6379.conf
改配置文件
appendonly yes
appendfsync everysec
由于 everysec 每秒存储一次,速度很快,几乎看不出与每次一存 always 的区别,但也可以进行存储。
左侧服务端重新启动
[root@localhost conf]# ps -ef | grep redis-
root 8985 1 0 19:52 ? 00:00:00 redis-server *:6379
root 9124 8551 0 19:57 pts/0 00:00:00 grep-color-auto redis-
[root@localhost conf]# kill -s 9 8985
重新启动
[root@localhost conf]# redis-serve redis-6379.conf
[root@localhost conf]#
此时已换成全新配置,右侧客户端进行连接
[root@localhost/]# redis-cli
127.0.0.1:6379>
此时查看数据文件,数据已进入。
五、AOF功能开启
1、配置
Appendfilenama filename
2、作用
AOF持久化文件名,默认文件名为 appendonly.aof,建议配置为 appendonly-端口号.afo
3、配置
dir
4、作用
AOF 持久化文件保存路径,与 RDB 持久化文件保持一致即可