Redis持久化是什么意思

发布时间:2020-08-29 09:13:39 作者:小新
来源:亿速云 阅读:664

这篇文章给大家分享的是有关Redis持久化是什么意思的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。

演示环境

centos7.0 redis4.0 redis存放目录:/usr/local/redis redis.conf存放目录:/usr/local/redis/data

1. 持久化简介

redis的所有数据都是保存在内存中,redis崩掉数据会丢失。redis持久化就是把数据保存在磁盘上。利用永久性存储介质将数据进程保存,在特定的时间将保存的数据进行恢复的工作机制称为持久化。

持久化过程保存的是什么呢?

第一种快照形式,存储数据结果,关注点在数据,也就是下文会讲到的RDB

第二种操作过程,存储操作过程,存储结构复杂,关注点在数据的操作过程,也就是下文会讲到的AOF

2. RDB

2-1 RDB启动方式  --  save命令

下图是redis.conf的配置信息,在执行完save后会生成一个dump.rdb的文件Redis持久化是什么意思现在我们设置一个值,然后save一下,在/usr/local/redis/data下就会有一个dump6379.rdb的一个文件Redis持久化是什么意思

2-2 RDB启动方式  --  save指令相关配置

2-3 RDB数据恢复

其实这个数据恢复相对于其他关系型数据库恢复基本就不用操作什么。只需要重新在启动就好了

2-4 RDB -- save指令工作原理

此图来源于网络视频。 save指令的执行会阻塞当前redis服务器,直到当前RDB过程完为止,有可能会造成长时间的阻塞。这个指令在工作过程中基本以被废弃不在使用。会以bgsave全部代替Redis持久化是什么意思

2-5 RDB -- bgsave指令工作原理

Redis持久化是什么意思当在redis执行了bgsave后会直接返回一个Background saving started

这个时候我们在看一下日志文件,bgsave命令是针对save阻塞问题做的优化Redis持久化是什么意思

2-5 RDB -- 配置文件自启动

save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes

Redis持久化是什么意思save  【时间】 【key改变数量】

也就是说在300秒有10个key值发生变化了,就会在后台执行bgsave

3. AOF

3-1 AOF概念

AOF持久化:以独立日志的方式记录每次写命令,重启时在重新执行AOF文件中命令达到数据恢复的目的。与RDB相比可以简单描述为记录数据产生的过程

AOF的主要作用是解决了数据持久化的实时性,目前已经是redis持久化的主流方式

3-2 AOF写数据过程

Redis持久化是什么意思执行一条redis命令

redis的AOF会把命令刷新缓冲区

然后根据一定的策略同步的到redis.conf配置的.aof文件中

3-3 AOF写数据的三种策略

3-4 AOF功能开启

Redis持久化是什么意思然后使用重启redis服务,就可以在usr/local/redis/data目录下可以看到appendonly.aof文件了Redis持久化是什么意思然后我们在redis客户端执行一条命令,在来查看一下。可以看到数据都会存入appendonly.aof这个文件中。Redis持久化是什么意思

3-5 AOF写数据出现的问题

我们先看一个案例,我们重复设置了name这个key后,打开appendonly.aof文件查看,可以看到有三个操作,但是这三个操作我们都是修改的一个key啊!我们只保存最后一个key不行吗?带着这个疑问,我们在继续往下看Redis持久化是什么意思

3-6 AOF重写

随着命令不断写入AOF,文件会越来越大,为了解决这个问题,redis引入了AOF重写机制压缩文件体积。AOF文件重写是将redis进程内的数据转化为写命令同步到新AOF文件的过程。简单说就是将对同一个数据的若干条命令执行结果转化为最终结果数据对应指令的执行记录。

如在上边我们执行了三次  set  name  指令,但是我们最终就只需要最后一次执行的数据。也就是我们只需要最后一次执行记录即可。

3-7 AOF重写作用

3-8 AOF重写规则

3-9 AOF手动重写

指令:bgrewriteaof

接着我们3-5的问题,我们在命令行执行bgrewriteaof指令然后查看appendonly.aof文件

当执行完后会发现文件变小了,文件里也就只有一条指令了

3-10 AOF手动重写工作原理

3-11 AOF自动重写

配置:auto-aof-rewrite-percentage 100 | auto-aof-rewrite-min-size 64mb触发对比参数:aof_current_size | aof_base_size

当aof_current_size   >   auto-aof-rewrite-min-size 64mb  会启动重写

此图来源于网络Redis持久化是什么意思

3-11 AOF工作流程和重写流=流程

Redis持久化是什么意思Redis持久化是什么意思

4. RDB和AOF区别

感谢各位的阅读!关于Redis持久化是什么意思就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到吧!

推荐阅读:
  1. Redis持久化
  2. redis的RDB持久化是什么

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

redis edi %d

上一篇:Redis数据类型及应用场景是什么

下一篇:Redis删除策略和逐出策略是什么

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》