由于 redis 将数据保存在内存中,很容易诱发的一个问题就是,程序崩溃或服务器重启等状况如何保证数据的正常存储。html
当咱们以 redis 做为主数据库使用时,或者将 redis 做为缓存服务器使用时,在缓存被穿透后会对性能形成很大的影响,全部缓存同时失效,产生缓存雪崩效应,服务器崩溃。redis
持久化:将内存中的数据同步保存到硬盘上,在须要的时候将硬盘中的数据进行还原恢复。数据库
持久化的方式:RDB 和 AOF,不少的时候是二者结合使用。缓存
(1)RDB:根据指定的规则“定时”将内存中的数据存储到硬盘。安全
(2)AOF:每次执行命令后将命令自己记录下来。服务器
快照:当符合必定条件时 redis 会自动将内存中的全部数据生成一份副本并保存到硬盘上。性能
执行的前提条件:优化
(1)配置自动快照的规则spa
(2)用户执行了 SAVE 或 BGSAVE 命令htm
(3)执行 FLUSHALL 命令
(4)执行复制时
缺点:一旦 redis 程序退出,会丢失最后一次快照之后更改的全部数据。
AOF 能够将 redis 执行的每一条写命令追加到硬盘,形成的缺点就是下降了 redis 的性能。但从保证数据安全的角度来讲是彻底能够接受的,选用 SSD 能够明显提升 AOF 的性能。
《Redis 小白指南(三)- 事务、Watch 命令、过时、消息通知、管道、优化内存空间》
【博主】反骨仔
【原文】http://www.cnblogs.com/liqingwen/p/6920935.html
【参考】《Redis 入门指南》