1.Redis:
Redis是一款基于内存的非关系型数据库(5种类型String 哈希 List Set Zset)
可能会发生的故障(缓存击穿:某热点数据或者没有缓存的时候 直接打到数据库上、缓存穿透:大量请求查询不存在的数据,直接打到数据库上、缓存雪崩:缓存过期或者不存在 打到数据库上)
持久化RDB(Redis Database Backup)和AOF(Append-Only File)是Redis持久化机制的两种主要方式,用于在Redis服务器重启时恢复数据。它们有不同的工作原理和适用场景:
工作原理:RDB是将Redis在内存中的数据以快照的形式定期保存到磁盘上的二进制文件。
触发方式:可以通过配置Redis定时进行自动触发保存,也可以通过命令手动触发保存。
优点:对于大规模的数据恢复速度较快,因为数据以二进制文件的形式存储,加载速度快。适合用于备份和全量恢复,特别是在数据集较大时,比如几十GB的数据量。
缺点:如果Redis发生故障,可能会丢失最后一次快照后的所有数据更新,因为RDB是定期生成快照,不是实时的持久化方式。不适合对数据实时性要求非常高的场景,可能会丢失最近的一些修改。
AOF(Append-Only File):
工作原理:AOF通过追加方式记录每次写操作的指令到一个文件中,这些指令以Redis协议的格式保存。**
触发方式:可以通过配置Redis定时进行日志文件的写入(fsync),也可以根据需求设置不同的fsync选项,以保证数据持久化的安全性。**
优点:相对于RDB,AOF可以提供更好的数据持久化安全性,因为数据更新操作是追加到文件末尾的。可以根据需求设置不同的fsync策略,可以在一定程度上控制持久化的性能和安全性之间的平衡。
缺点:AOF文件通常比RDB文件大,因为它记录了每个写操作,可能导致文件体积增大。**
在Redis重启时,AOF文件较大时恢复速度可能比RDB慢,因为需要逐行执行指令来重建数据。选择使用RDB还是AOF取决于你的具体需求和对数据恢复速度、实时性的要求:RDB适用于:需要较快速度进行全量备份和恢复 的场景。数据集较大,需要节省存储空间的场景。AOF适用于:对数据实时性要求较高,不希望丢失大量写操作的场景。可以接受较长恢复时间,但要求每次写操作都能持久化到磁盘的场景。在实际应用中,也可以同时使用RDB和AOF来结合它们各自的优势,以提高数据的可靠性和恢复能力。
2.哨兵模式搭建: