动力节点Redis7笔记-第四章Redis持久化

【动力节点】Redis入门到高级教程,全网最新最全redis缓存教程,redis百科大全

4 Redis持久化

Redis是一个内存数据库,所以其运行效率非常高。但也存在一个问题:内存中的数据是不持久的,若主机宕机或Redis关机重启,则内存中的数据全部丢失。当然,这是不允许的。Redis具有持久化功能,其会按照设置以快照或操作日志的形式将数据持久化到磁盘。
根据持久化使用技术的不同,Redis的持久化分为两种:RDB与AOF。

4.1 持久化基本原理


Redis持久化也称为钝化,是指将内存中数据库的状态描述信息保存到磁盘中。只不过是不同的持久化技术,对数据的状态描述信息是不同的,生成的持久化文件也是不同的。但它们的作用都是相同的:避免数据意外丢失。
通过手动方式,或自动定时方式,或自动条件触发方式,将内存中数据库的状态描述信息写入到指定的持久化文件中。当系统重新启动时,自动加载持久化文件,并根据文件中数据库状态描述信息将数据恢复到内存中,这个数据恢复过程也称为激活。这个钝化与激活的过程就是Redis持久化的基本原理。
不过从以上分析可知,对于Redis单机状态下,无论是手动方式,还是定时方式或条件触发方式,都存在数据丢失问题:在尚未手动/自动保存时发生了Redis宕机状况,那么从上次保存到宕机期间产生的数据就会丢失。不同的持久化方式,其数据的丢失率也是不同的。

需要注意的是,RDB是默认持久化方式,但Redis允许RDB与AOF两种持久化技术同时开启,此时系统会使用AOF方式做持久化,即AOF持久化技术的优先级要更高。同样的道理,两种技术同时开启状态下,系统启动时若两种持久化文件同时存在,则优先加载AOF持久化文件。

4.2 RDB持久化

RDB,Redis DataBase,是指将内存中某一时刻的数据快照全量写入到指定的rdb文件的持久化技术。RDB持久化默认是开启的。当Redis启动时会自动读取RDB快照文件,将数据从硬盘载入到内存,以恢复Redis关机前的数据库状态。

4.2.1 持久化的执行

RDB持久化的执行有三种方式:手动save命令、手动bgsave命令,与自动条件触发。

4.2.1.1 手动save命令


通过在redis-cli客户端中执行save命令可立即进行一次持久化保存。save命令在执行期间会阻塞redis-server进程,直至持久化过程完毕。而在redis-server进程阻塞期间,Redis不能处理任何读写请求,无法对外提供服务。

4.2.1.2 手动bgsave命令


通过在redis-cli客户端中执行bgsave命令可立即进行一次持久化保存。不同于save命令的是,正如该命令的名称一样,background save,后台运行save。bgsave命令会使服务器进程redis-server生成一个子进程,由该子进程负责完成保存过程。在子进程进行保存过程中,不会阻塞redis-server进程对客户端读写请求的处理。

4.2.1.3 自动条件触发

自动条件触发的本质仍是bgsave命令的执行。只不过是用户通过在配置文件中做相应的设置后,Redis会根据设置信息自动调用bgsave命令执行。具体配置方式,后面会详解。

4.2.1.4 查看持久化时间

通过lastsave命令可以查看最近一次执行持久化的时间,其返回的是一个Unix时间戳。

4.2.2 RDB优化配置

RDB相关的配置在redis.conf文件的SNAPSHOTTING部分。

4.2.2.1 save


该配置用于设置快照的自动保存触发条件,即save point,保存点。该触发条件是在指定时间段内发生了指定次数的写操作。除非另有规定,默认情况下持久化条件为save 3600 1 300 100 60 10000。其等价于以下三条:

  • save 3600 1 # 在3600秒(1小时)内发生1次写操作
  • save 300 100 # 在300秒(5分钟)内发生100次写操作
  • save 60 10000 # 在60秒(1分钟)内发生1万次写操作

如果不启用RDB持久化,只需设置save的参数为空串即可:save “”。

4.2.2.2 stop-write-on-bgsave-error

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值