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