本文共 644 字,大约阅读时间需要 2 分钟。
因为 redis 将数据保存在内存中,很容易诱发的一个问题就是,程序崩溃或服务器重启等情况如何保证数据的正常存储。
当我们以 redis 作为主数据库使用时,或者将 redis 作为缓存服务器使用时,在缓存被穿透后会对性能造成很大的影响,所有缓存同时失效,产生缓存雪崩效应,服务器崩溃。
持久化:将内存中的数据同步保存到硬盘上,在需要的时候将硬盘中的数据进行还原恢复。
持久化的方式:RDB 和 AOF,很多的时候是两者结合使用。
(1)RDB:根据指定的规则“定时”将内存中的数据存储到硬盘。
(2)AOF:每次执行命令后将命令本身记录下来。
快照:当符合一定条件时 redis 会自动将内存中的所有数据生成一份副本并保存到硬盘上。
执行的前提条件:
(1)配置自动快照的规则
(2)用户执行了 SAVE 或 BGSAVE 命令
(3)执行 FLUSHALL 命令
(4)执行复制时
缺点:一旦 redis 程序退出,会丢失最后一次快照以后更改的所有数据。
AOF 可以将 redis 执行的每一条写命令追加到硬盘,造成的缺点就是降低了 redis 的性能。但从保证数据安全的角度来说是完全可以接受的,选用 SSD 可以明显提高 AOF 的性能。
【博主】反骨仔
【原文】
【参考】《Redis 入门指南》
转载地址:http://gnybx.baihongyu.com/