这篇文章主要讲解了“Redis持久化存储机制是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Redis持久化存储机制是什么”吧!
Redis 的数据全部在内存里,如果突然宕机,数据就会全部丢失,因此必须有一种机制来保证 Redis 的数据不会因为故障而丢失,这种机制就是 Redis 的持久化机制。
一、RBD(快照)
原理
在某个时间点将内存中的数据写入一个磁盘的临时文件,持久化结束后,用这个临时文件替换上次持久化的文件。
配置文件
save 900 1 # 在900秒内如果键值修改过1次就快照save 300 10 # 在300秒内如果键值修改过10次就快照save 60 10000 # 在60秒内键值修改过10000次就快照stop-writes-on-bgsave-error yes # 后台备份出错时,是否禁止新的写入操作?如果不禁止容易造成数据不一致rdbcompression yes # 导出的rdb文件是否压缩rdbchecksum yes # 恢复时导入rdb文件是否检验完整性、是否检验版本是否一致dbfilename dump.rdb # 导出来得rdb文件名dir /var/lib/redis # rdb的存放路径
二、AOF
原理
‎通过将发送到服务器的写操作‎‎命令‎‎记录下来,形成AOF文件,此文件只许追加不能修改,Redis启动时会读取AOF文件后重构数据(重新执行一遍)。 文件默认名称是appendonly.aof‎
配置文件
appendonly no # 是否开启aof功能appendfilename "appendonly.aof" # 文件名appendfsync always # 只要一修改就同步至缓冲区,并同步至磁盘appendfsync everysec # 每秒将数据同步至缓冲区,并同步至磁盘appendfsync no # redis不设定同步策略,由内核设定的参数决定是否同步no-appendfsync-on-rewrite no # appendfsync设定为always或everysec的话,还要不要同步磁盘auto-aof-rewrite-percentage 100 # 每隔多久重构aof文件,单位秒auto-aof-rewrite-min-size 64mb # aof文件最小为多少时重构一次aof文件。搭配上一条使用aof-load-truncated yes # 崩溃修复后自动进行全备
aof重写、重构
将大量重复的命令合并成一条命令,而不必频繁的去重新执行每一条命令.
三、AOF对比RDB
AOF更加安全,可以将数据即时同步到文件中,但是消耗磁盘I/O,效率低
Snapshot更高效,它是服务器在正常运行情况下数据同步最佳手段,文件尺寸小,效率高,安全性低
注:RDB与AOF同时开启 默认使用AOF来恢复数据
四、常用架构
架构良好的环境中:Master使用AOF,Slave使用snapshot。 原因是主要确保数据完整,从要速度快。‎
网络环境较差:建议使用master与slave同时使用AOF更加安全
网络良好、需要收密集型写操作:建议Master采用snapshot,Slave采用AOF
感谢各位的阅读,以上就是“Redis持久化存储机制是什么”的内容了,经过本文的学习后,相信大家对Redis持久化存储机制是什么这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!