您的位置:首页 > 数据库 > Redis

Redis持久化(RDB+AOF)与容灾备份

2017-11-15 19:48 791 查看
Redis持久化配置分为3种:第一种:不做持久化,做为纯内存数据库来使用,Redis关闭重启后恢复白板一张,数据全部丢失。第二种:RDB,将Reids在内存中数据快照定时dump到磁盘上,在 Redis 重启动时,RDB程序可以通过载入 RDB文件来还原数据库的状态。

配置如下:save 300 10 #在300秒(5分钟)之后,如果至少有10个key发生变化,则dump内存快照。第三种:AOF(append only file),将Reids的写入命令以协议文本的方式追加到磁盘文件。

Redis目前支持三种 AOF保存模式,它们分别是:1. AOF_FSYNC_NO:不保存。2. AOF_FSYNC_EVERYSEC:每一秒钟保存一次。3. AOF_FSYNC_ALWAYS:每执行一个命令保存一次AOF对数据的恢复是需要执行协议里的命令的,并不像RDB那样直接可用。AOF会通过rewrite来合并命令处理结果,压缩存储资源。  RDB的优缺点:优点:1,Redis备份只包括一个文件,一旦出现故障很容易恢复。      2,备份操作是fork出来的子进程在处理的,不会影响到服务进程,性能最大化。      3,相对于AOF相同数据集启动效率更高。缺点:1,备份非及时性,出现灾难必定会引起较长时间段数据的丢失。      2,备份文件是人工不可读的二进制格式。 AOF的优缺点:优点:1,更高的数据安全,保证数据灾难时丢失的数据最少。      2,备份文件是人工可读的。缺点:1,相同数据的数据集,AOF的文件要大于RDB的文件,恢复速率也低于RDB      2,备份时运行效率也低于RDB(没办法,可靠性与效率本来就是一个平衡) RDB与AOF的策略选择:主要根据自己的应用场景来分析,在效率和可用性之间做选择,愿意牺牲一些性能换取数据的高可用,还是愿意丢失一些数据换取性能的提高。 Redis持久化的配置在./redis-server XXX.conf这个XXX文件中设置,Redis自带的redis.conf中里有配置的详细说明。
在架构良好的环境中,master通常使用AOF,slave使用snapshot,主要原因是master需要首先确保数据完整性,它作为数据备份的第一选择;slave提供只读服务(目前slave只能提供读取服务),它的主要目的就是快速响应客户端read请求;但是如果你的redis运行在网络稳定性差/物理环境糟糕情况下,建议你master和slave均采取AOF,这个在master和slave角色切换时,可以减少“人工数据备份”/“人工引导数据恢复”的时间成本;如果你的环境一切非常良好,且服务需要接收密集性的write操作,那么建议master采取snapshot,而slave采用AOF。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  redis 备份