redis系列(12)-- 高级话题之持久化

前言:废话不说,上手就干
持久化可以理解为存储,就是将数据存储到一个不会丢失的地方,如果吧数据放在内存中,电脑关闭或重启数据就会丢失,所以放在内存中的数据不是持久化的,而放在磁盘就算是一种持久化。
redis的数据存储在内存中,内存是瞬时的,如果Linux宕机或重启,又或者redis崩溃或重启,所有的内存数据都会丢失,为解决这个问题,redis提供两种机制对数据进行持久化存储,便于发生故障后能迅速恢复数据
一、RDB方式
1、什么是RDB方式?
redis database(RDB),就是在指定的时间间隔内将内存中的数据集快照写入磁盘,数据恢复时将快照文件直接在读到内存
RDB保存了在某个时间点的数据集(全部数据)。存储在一个二进制文件中,只有一个文件,默认是dump.rdb。RDB技术非常适合做备份,可以保存最近一个小时、一天、一个月的全部数据。保存数据是在单独的进程中写文件,不影响redis的正常使用,RDB’恢复数据是必其他AOF速度快。
2、如何实现?
RDB方式的数据持久化,仅需哎redis.conf文件中配置即可,默认配置是启用的。
在配置文件redis.conf中搜索SNAPSHOTTING,查找在注释开始和结束之间的关于RDB的配置说明,配置SNAPSHOTTING地方有三处。
1)配置执行RDB生成快照文件的时间策略。
对redis进行设置,让它在“N秒内数据集至少有M个key改动”这一条件被满足时,自动保存一次数据集。
配置格式:
save
save 900 1
save 300 10
save 60 10000
2)dbfilename:设置RDB文件名,默认文件名为dump.rdb
3)dir:指定Rdb文件的存储位置,默认是./当前目录
配置步骤:
1)查看ps -ef | grep redis,如果redis服务启动,先停止
在这里插入图片描述
2)修改redis.conf文件,修改前先备份,执行cp redis.conf bak_redis.conf
在这里插入图片描述
3)编辑redis.conf增加save配置,修改文件名等。vim redis.conf
在这里插入图片描述
修改的内容:
在这里插入图片描述
在这里插入图片描述
把原来默认的dump.rdb删除,修改redis.conf后,重新启动redis
5)查看生成的rdb文件
在这里插入图片描述
3、总结
优点:由于存储的是数据快照文件,恢复数据很方便,也比较快
缺点:
1)会丢失最后一次快照以后更改的数据,如果你的应用能容忍一定数据的丢失,那么使用rdb是不错的选择,如果不能容忍一定数据的丢失,那么使用rdb就不是一个很好的选择
2)由于经常需要操作磁盘,RDB会分出一个子进程,如果你的redis数据库很大的话,子进程占用比较多的时间,并且可能会影响redis暂停服务一段时间(millisecond级别),如果你的数据库超级大并且你的服务器cpu比较弱,有可能会达到一秒。
二、AOF方式
1、什么是AOF方式
Append-only File(AOF),redis每次接收到一条改变数据的命令时,它将该命令写到一个AOF文件中(只记录写操作,读操作不记录),当redis重启时,它通过AOF文件中的所有命令来恢复数据。
2、如何实现
Aof方式的数据持久化,仅需在redis.conf文件中配置即可
配置项:
1)appendonly:默认是no,改成yes即开启了AOF持久化
2)appendfilename:指定AOF文件名,默认文件名为appendonly.aof
3)dir:指定RDB和AOF文件存放目录,默认是./
4)appendfsync:配置向aof文件写命令数据的策略:
no:不主动进行同步操作,而是完全交由操作系统来做(即每30秒一次),比较快但不是很安全
always:每次执行写入都会执行同步,慢一些但是比较安全
everysec:每秒执行一次同步操作,比较平衡,介于速度和安全之间,这是默认项
5)auto-aof-rewrite-min-size:允许重写的最小AOF文件大小,默认是64M,当aof文件大于64M时,开始整理aop文件,去掉无用的操作命令,缩小aop文件
执行步骤:
1)停止运行的redis,备份redis.conf文件
2)编辑redis.conf文件
设置appendonly为yes即可
查看appendfilname的文件名称
在这里插入图片描述
查看aooendfsync的当前策略
在这里插入图片描述
3)在redis客户端执行写入命令
在这里插入图片描述
4)查看aof文件
在这里插入图片描述
3、总结
1)append-only文件是另一个可以提供完全数据保障的方案;
2)AOF文件会在操作过程中变得越来越大,比如,如果你在做一百次加法计算,最后你只会在数据库里面得到最终的数值,但是在你的AOF里面会存在100此记录,其中的99条记录对最终结果是无用的,但redis支持在不印象服务的前提下在后台重构AOF文件,让文件得以整理变小
3)可以同时使用者两种方式,redis默认优先加载aof文件(aof数据最完整)
以上就是redis高级话题中的持久化部分,共勉!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值