如何理解Redis的'持久化'机制?

Redis的'持久化'机制

redis为了内存数据的安全考虑,会把内存中的数据以文件形式保存到硬盘中一份,在服务器重启之后会自动把硬盘的数据恢复到内存(redis)的里边。

数据保存到硬盘的过程就称为“持久化”效果。

redis支持两种持久化方式:

(1)snapshotting(快照)默认方式

(2)append-only file(缩写aof)的方式

snapshotting快照方式持久化

该持久化默认开启,一次性把redis中全部的数据保存一份存储在硬盘中(备份文件名字默认是dump.rdb),如果数据非常多(10-20G)就不适合频繁进行该持久化操作。并且,由于快照方式是在一定间隔做一次的,所以如果redis意外down掉的话,就会丢失最后一次快照后的所有修改

(1)如何开启:默认开启.

     但是快照方式的持久化有自己的触发条件,这里我们找到redis.conf中设置配置参数

#   save <seconds> <changes>
#
#   Will save the DB if both the given number of seconds and the given
#   number of write operations against the DB occurred.
#
#   In the example below the behaviour will be to save:
#   after 900 sec (15 min) if at least 1 key changed
#   after 300 sec (5 min) if at least 10 keys changed
#   after 60 sec if at least 10000 keys changed
#
#   Note: you can disable saving completely by commenting out all "save" lines.
#
#   It is also possible to remove all the previously configured save
#   points by adding a save directive with a single empty string argument
#   like in the following example:
#
#   save ""

save 900 1       #900 秒内如果超过1个key被修改,则发起快照保存
save 300 10      #300 秒内超过10个key被修改,发起快照保存
save 60 10000    #60  秒内超过10000个key被修改,发起快照保存

注意:屏蔽该触发条件,即可关闭快照方式。

(2)可以设置保存位置,和备份的文件名

备份文件名字默认是dump.rdb,我们也可以自己修改,

可以通过配置文件,来完成修改。


(3)手动发起快照:

两种方式完成手动保存。

方式一:在登录状态:则直接执行bgsave即可。


方式二 :在没有登录状态./redis-cli bgsave 手动发起一次快照保存操作



append-only-file  追加(AOF)方式持久化

把用户执行的每个“写”指令(添加、修改、删除)都备份到文件中,还原数据的时候就是执行具体写指令而已。

(1)如何开启

打开redis.conf配置文件,进行打开配置。

appendonly   yes                  //启用 aof 持久化方式

appendfilename  appendonly.aof   //保存命令的文件(可以指定路径)

(2)触发条件

打开redis.conf配置文件,进行如下修改。

#appendfsync always    //每次收到写命令就立即强制写入磁盘,最慢的,但是保证完全的持久化,不推荐使用

appendfsync everysec   //每秒钟强制写入磁盘一次,在性能和持久化方面做了很好的折中,推荐

#appendfsync no        //完全依赖 os,性能最好,持久化没保证



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不负好时光1001

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值