【redis】五、redis持久化、以及afk

redis持久化

redis数据是存在于内存中的,但是当redis意外宕机,就需要恢复数据,所以有必要对Redis的数据进行持久化。持久化分为

  1. rdb 以二进制的方式保存当前redis中的所有内容。rdb会丢失数据
  2. aof 以追加文件的方式记录所有的set操作。aof文件较大,并且会有无用操作

rdb

执行bgsave命令,就可以生成dump.rdb文件。

注意:

当执bgsave时,linux操作系统会采用fork函数,将redis持有的所有内存引用,复制一份。主线程redis仍然在接受和提供数据查询,fork出来的那份引用,进行持久化。这样的好处是持久化的时候对Redis的读写性能没有影响,缺点是,在调用bgsave的时间与持久化完成时之间时,持久化线程挂掉,那这之间的数据,存在丢失的可能性,无法恢复。

另外可以在配置文件中,设置rdb的策略。多少分钟多少次,rdb一次

 

aof

开启aof之后,每一次set操作,都会以文件追加的方式追加到aof文件中,所以这种方式,对数据一致性保障最高。

但是也存在之前set k1 value,然后又set k2 value2。那第一次的set k1 value就是无效记录。所以aof会慢并且也会产生相对较大的文件。

当rdb与AOF同时开启时,则优先使用aof进行数据恢复。

aof开启在配置文件中配置开关

 

在redis4.0之后,aof综合了rdb与aof的策略,之前的数据,将以rdb的格式加入到aof文件中,之后的数据,则以aof的方式追加。

 

afk

afk是一种保障服务的策略,分为x、y、z三个方向

x:当一台redis容易故障的时候,则增加几台备用机

y:当一台redis保存的数据太多时,则将数据分在多台Redis中

z:当一个业务在一台redis中内容也太多了,那么将这个业务数据进行拆分,例如按的确拆分到多个redis中

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值