做好自己

Redis——持久化机制实操

2022-01-21  本文已影响0人  嘘寒问暖

可以借鉴这两篇文章http://redis.cn/topics/persistence.htmlhttps://www.jianshu.com/p/d947bec4c4bf


Redis——持久化机制实操

实操持久化机制AOF(老版本):

一、先将redis服务停掉;

二、进入redis的配置文件,修改redis持久化相关配置:vi /etc/redis/6379.conf

    1:先修改redis运行状态,使redis在前台阻塞运行:daemoinze no

    2:注释掉写入日志文件指令:

    3:开启aof:appendonly yes

    4:关闭混合模式:aof-use-rdb-preamble no

    5:启动redis服务:redis-server /etc/redis/6379.conf(注意这里要携带配置文件一起启动,否则配置不生效)

        redis的日志文件是记录在:/var/lib/redis该目录下

        6:然后我们对redis进行写入操作,在该目录下会生成一个appendonly.aof文件

三、解读aof文件:用vi指令查看,vi appendonly.aof

打开appendonly.aof文件

    1:*2:表示进行两句操作,如:“SELECT”,“0”,表示为选择了第“0”号库;

    2:$6:表示对应操作占用的字符长度为6,“SELECT”的字符长度为6;

    3:$1:表示对应操作占用的字符长度为1,“0”的字符长度为1;

    4:同理:*3、$3、$5也是一样的意思

四:操作RDB文件,执行相关指令后,可使用bgsave,进行写入RDB,在日志目录(/var/lib/redis)下会生成一个dump.rdb;备注:save一般不用,因为执行的时候redis直接不提供服务了。save指令会阻塞当前Redis服务器,知道RDB过程完成位置,会造成长时间阻塞。不建议使用,使用redis-check-rdb dump.rdb会对RDB文件进行校验,并提示出哪里数据有问题。

    1:然后阻塞的redis服务会提示出相关信息

    2:同时可以执行bgrewriteaof重写aof

   五:开启混合模式情况下(新版本):aof-use-rbd-preamble yes

    1:开启后重新启动redis,同样要携带配置文件一起启动

    2:我们在将 /var/lib/redis/6379/ 目录下的aof文件和rdb文件删除

    3:然后重新开启客户端,并输入相关指令,输入指令之后,要出入一次bgrewriteaof,然后在查看日志目录边       的aof文件有何区别?

    4:前半部分用的却是二进制文件,也是就RDB的格式,而后半部分却是aof明文的日志格式写入,这便是混合模式写入文件格式。既有RDB的效率,又保证数据的及时性。

    5:同样的执行 bgsave之后,会生成dump.rbd文件

    6:注意:当如果执行FLASHALL之后,如果又执行了bgrewriteaof的话,那么aof文件会直接清空,所以如果要恢复数据,不能再flashall之后进行重写aof操作

六、判断自动执行bgrewriteaof的配置,如果达到100%了就自动重写,或者达到最小64M就自动重写。

auto-aof-rewrite-percentage 100  auto-aof-rewrite-min-size 64mb
上一篇下一篇

猜你喜欢

热点阅读