Redis的持久化

持久化可以理解为存储,就是将数据存储到一个不会丢失的地方,如果把数据放在内存中,电脑关闭或重启数据就会丢失,所以放在内存中的数据不是持久化的,而放在磁盘就算是一种持久化。

Redis的数据存储在内存中,内存是瞬时的,如果 linux宕机或重启,又或者 Redis崩溃或重启,所有的内存数据都会丢失,为解决这个问题, Redis提供两种机制对数据进行持久化存储,便于发生故障后能迅速恢复数据。

1. RDB方式

1.1  什么是 RDB方式 ?

Redis Database RDB),就是在指定的时间间隔内将内存中的数据集快照写入磁盘,数据恢复时将快照文件直接再读到内存。

RDB保存了在某个时间点的数据集(全部数据)。存储在一个二进制文件中,只有一个文件。默认是 dump.rdb。 RDB技术非常适合做备份,可以保存最近一个小时,一天,一个月的全部数据。保存数据是在单独的进程中写文件,不影响 Redis的正常使用。 RDB恢复数据时比其他 AOF速度快。

1.2  如何实现

RDB方式的数据持久化,仅需在 redis.conf文件中配置即可 ,默认配置是启用的。

在配置文件 redis.conf中搜索 SNAPSHOTTING,查找在注释开始和结束之间的关于 RDB的配置说明。配 SNAPSHOTTING置地方有三处。

①配置执行RDB生成快照文件的时间策略

对Redis 进行设置 让它在 “ N 秒内数据集至少有 M 个 key改动 ”这一条件被满足时自动保存一次数据集。

配置格式:save <seconds> <changes>           // 即在多少秒的时间范围类被改变多少次   满足这个条件后Redis会自动将数据持久化 save 900 1              // 900秒内如果只有一个key被改变 则进行数据持久化 save 300 10 save 60 10000

② dirfilename:设置RDB的文件名,默认的文件名称为dump.rdb

③ dir:指定RDB文件的存储位置,默认是./ 当前目录

1.3 配置步骤

①修改redis.conf文件,修改前先进行备份

查看默认启用的RDB文件:

②编辑redis.conf增加save配置,修改保存的文件名等。vim redis.conf

修改的内容

把原来默认的dump.rdb删除,保存redis.conf的修改后,启动redis

④测试

在20秒内修改三个key的值

查看生成的RDB文件

1.4 总结

优点:由于存储的是数据快照文件,回复数据方便也很快。

缺点:

1)会丢失最后一次快照以后更改的数据,如果你能容忍一定数据的丢失,那么rdb是不错的选择;否则不会是好的选择

2)由于需要进程操作磁盘,RDB会分出一个子进程。如果你的redis数据库很大的话,子进程会占用较多的时间,并且可能会影响redis暂停服务一段时间(millisecond 级别),如果你的数据库超级大且你的服务器CPU比较若的话,暂停时间可能会更久。

2. AOF方式

 查看aof文件

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值