Redis持久化完整版本
时间:2022-02-25 11:51
持久化的简介 RDB AOF RDB与AOF的区别 持久化应用场景 对于持久化这个功能点,其实很简单没有那么复杂 centos7.0 redis4.0 redis存放目录:/usr/local/redis redis.conf存放目录:/usr/local/redis/data redis的所有数据都是保存在内存中,redis崩掉数据会丢失。redis持久化就是把数据保存在磁盘上。利用永久性存储介质将数据进程保存,在特定的时间将保存的数据进行恢复的工作机制称为持久化。 持久化过程保存的是什么呢? 第一种快照形式,存储数据结果,关注点在数据,也就是下文会讲到的RDB 第二种操作过程,存储操作过程,关注点在数据的操作过程,也就是下文会讲到的AOF 下图是redis.conf的配置信息,在执行完save后会生成一个dump.rdb的文件 现在我们设置一个值,然后save一下,在/usr/local/redis/data下就会有一个dump6379.rdb的一个文件 其实这个数据恢复相对于其他关系型数据库恢复基本就不用操作什么。只需要重新在启动就好了 当你执行save时,其他客户端请求redis的指令都会等待,直到save指令执行完成。因为save指令是单线程执行,一旦执行时间过长会直接导致其他用户端无法正常存储数据。所以这个指令我们默认被废弃。会使用下文介绍的bgsave来代替 当在redis执行了bgsave后会直接返回一个Background saving started 这个时候我们在看一下日志文件,bgsave命令是针对save阻塞问题做的优化 save 【时间】 【key改变数量】 也就是说在300秒有10个key值发生变化了,就会在后台执行bgsave AOF文件存储的是执行命令操作过程,恢复数据也是使用操作过程来恢复。 执行一条redis命令 redis的AOF会把命令刷新缓冲区 然后根据一定的方式同步的到redis.conf配置的.aof文件中 然后使用重启redis服务,就可以在usr/local/redis/data目录下可以看到appendonly.aof文件了 然后我们在redis客户端执行一条命令,在来查看一下。可以看到数据都会存入appendonly.aof这个文件中。 我们先看一个案例,我们重复设置了name这个key后,打开appendonly.aof文件查看,可以看到有三个操作,但是这三个操作我们都是修改的一个key啊!我们只保存最后一个key不行吗?带着这个疑问,我们在继续往下看 如在上边我们执行了三次 set name 指令,但是我们最终就只需要最后一次执行的记录。也就是我们只需要最后一次执行记录即可。其他的记录就不需要了,然后会把压缩后的数据重写到aof文件中。 重写后我们的磁盘利用率就提高了 还有就是我们恢复数据的速度也会变快 同时也会提高持久化的效率 指令: 接着我们3-5的问题,我们在命令行执行bgrewriteaof指令然后查看appendonly.aof文件 当执行完后会发现文件变小了,文件里也就只有一条指令了 配置: 触发对比参数: 当aof_current_size > auto-aof-rewrite-min-size 64mb 会启动重写 此图来源于网络 以上就是redis持久化的所有内容。 以上就是Redis持久化完整版本的详细内容,更多请关注gxlsystem.com其它相关文章!演示环境
1. 持久化简介
2. RDB
2-1 RDB启动方式 -- save命令
2-2 RDB使用方式之save
2-3 RDB数据恢复
2-4 RDB -- save指令工作原理
2-5 RDB -- bgsave指令工作原理
2-5 RDB -- 配置文件自启动
以下配置是默认配置
save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes
3. AOF
3-1 AOF概念
3-2 AOF写数据过程
3-3 AOF写数据的三种策略
3-4 AOF功能开启
appendonly yes|no
appendfsync always| everysec | no
3-5 AOF写数据出现的问题
3-6 AOF重写
3-7 AOF重写规则
hdel,srem
。 还有就是3-5说的问题,连续对一个key进行操作lpush list a lpush lsit b lpush list c
可以转化为lpush list a b c
。3-8 AOF手动重写
bgrewriteaof
3-9 AOF手动重写工作原理
3-10 AOF自动重写
auto-aof-rewrite-percentage 100 | auto-aof-rewrite-min-size 64mb
aof_current_size | aof_base_size
3-11 AOF工作流程和重写流=流程
4. 总结