博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
redis的持久化方式
阅读量:6163 次
发布时间:2019-06-21

本文共 1325 字,大约阅读时间需要 4 分钟。

hot3.png

目前来讲,redis有两种数据持久化的方式,分别是RDB和AOF。

一、RDB方式( Redis DataBase

RDB的方式是redis在某个时间点将数据写入一个文件 dump.rdb,持久化数据集,再redis重启是使用dump.rdb文件进行数据恢复。他的优点是每间隔一段时间进行一次持久化,性能比较好,适合用来做数据备份。但一旦redis发生故障,距离上一次持久化时间的数据都会丢失,所以数据的备份不是那么严谨。相比于AOF,文件较小,恢复速度较快。

可以在redis中手动输入数据命令 savebgsave 来持久化。

RDB默认是开启的,如果想关闭,配置文件中需要修改成 save ""

或在redis-cli中输入 config set save ""  关闭。

默认备份规则为(可以自行修改):

save 900 1      ( 900秒内至少1个key值改变)

save 300 10    ( 300秒内至少10个key值改变)
save 60 10000( 60秒内至少10000个key值改变)

 

二、AOF方式( Append-only file

AOF是AppendOnly File的缩写,在AOF文件中记录了发生在redis的全部操作,在redis服务器重启之后,恢复之前数据的状态, AOF文件是能达到现有数据状态的最小的命令集合,是执行命令的“日志”。

AOF默认是关闭的 appendonly no,需要修改成 appendonly yes 开启。

或在redis-cli中输入 config set appendonly yes 开启。

 

redis中主要的aof设置:

appendfsync no

redis不直接调用文件同步,是交给操作系统来处理,操作系统可以根据buffer填充情况/通道空闲时间等择机触发同步。性能比较好,但在服务器出现故障时,数据丢失量不确定。

appendfsync everysec(默认,也是最佳的选择。)

redis会每隔一秒将缓冲区中的数据写到AOF文件中。但是当这一次的同步调用时长超过1秒时,Redis会采取延迟同步的策略,再等一秒钟。也就是在两秒后再进行同步,但这次同步是多次写操作的数据,一次性将日志写到AOF。

appendfsync always

每一次写操作都会同步一次,数据是最安全的,但是性能也受到影响。

 

当然,也可以在redis中手动触发同步,输入 bgrewriteaof  命令。

 

总结:

① AOF 数据安全性高,同步文件更加及时,但需要更多的磁盘IO开支,文件尺寸较大,恢复速度较慢。

② RDB 数据安全性较差,是redis正常运行情况下数据备份以及主从数据同步的最佳方式,磁盘IO开支较小,文件尺寸较小,恢复数度较快。

推荐使用方式:

①建议使用 master(AOF),slave(RDB),确保master数据完整性,slave提供读取服务。

②如果服务需要接收大量写操作,建议 master(RDB),slave(AOF),个人见解。

 

转载于:https://my.oschina.net/MinghanSui/blog/1523616

你可能感兴趣的文章
Linux磁盘分区与挂载
查看>>
J2se学习笔记一
查看>>
DNS视图及日志系统
查看>>
老李分享:Android性能优化之内存泄漏 3
查看>>
mysql命令
查看>>
来自极客标签10款最新设计素材-系列七
查看>>
极客技术专题【009期】:web技术开发小技巧
查看>>
PHP 简单计算器代码实现
查看>>
正则表达式的知识普及
查看>>
docker使用笔记
查看>>
华为eNSP模拟器上实现FTP服务
查看>>
【全球AI人才排行榜】美国第一,中国仅排名第7
查看>>
微信小程序输入框input
查看>>
MySql字符串函数使用技巧
查看>>
Doc2Vec,Word2Vec文本相似度 初体验。
查看>>
系统ghost后变成一个盘了别的分区的文件怎么找回
查看>>
Win7+Ubuntu11
查看>>
请问华为三层交换机里面的那个从IP是个什么意思? -
查看>>
kFeedback开源啦
查看>>
大数据传输,文件传输的专业解决方案!
查看>>