redis的持久化

今天面试被问到redis的持久化问题,然后今天晚上看会书复习一下,然后做一些笔记,以后查阅看、。

一 持久化方式

1.redis 的持久化的主要意义在于避免进程退出而造成的数据丢失,当下次重启时候可以利用之前持久化的文件失效数据的恢复。方式主要2种RDB和AOF

1.1RDB

把当前进程数据保存硬盘,通过自动或者手动方式触发

手动触发两个方式:sava和bgsave命令

save:阻塞当前redis服务器,直到RDB完成,可能会造成长时间阻塞

bgsave:redis执行fork操作创建子进程,由子进程完成。

bgsave可以自动触发,通过save相关配置或者从节点执行全量复制

 

1.1.1RDB的文件处理

通过配置dbfilename,也可以通过命令动态执行设置保存路径

压缩算法:redis默认使用LZF算法对生成的RDB文件进行压缩

1.1.2 RDB的优缺点

优点:代表Redis在某个节点的数据快照,适合备份全量复制,如定时执行bgsave备份,并把文件定时保存到远程文件夹或者HDFS中

加载rdb恢复数据比AOF快很多

缺点:不能像AOF一样实时秒级持久化,因为每次都要创建子进程,系统性能消耗比较大,各个版本的rdb兼容性不好

1.2AOF

以独立日志方式记录每次写命令,重启时候重新执行AOF文件里面命令达到恢复数据方式,可以解决数据实时性问题

1.2.1使用AOF

默认不开始,需要配置开启

 

AOF的工作流程:命令写入,文件同步,文件重写,重启加载。

命令写入:文本方式

文件同步,三个配置appendfsync控制

always:每次写入都要同步,TPS比较低,不适合

no:数据安全没法保证

everysec:默认配置,

 

重写机制:文件越来越大,需要开启压缩,可以通过自动好手动方式触发

重启加载:AOF开启并存在文件时候,优先加载,如果AOF关闭或者文件不存在时候,加载RDB文件。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值