Redis 是一个高性能的键值对内存数据库,广泛用于缓存和数据存储场景。其架构原理主要包括持久化机制、主从同步、哨兵机制以及集群框架等核心知识点。 **Redis 持久化** Redis 提供了多种持久化策略,以确保即使在服务器重启或异常情况下也能恢复数据。 1. **RDB (Redis Database Persistence)** - RDB 是 Redis 默认的持久化方式,通过创建数据集的快照来保存状态。 - 快照触发条件包括:满足配置的 save 规则、执行 save 或 bgsave 命令、执行 flushall 或主从复制。 - **快照实现**:Redis 使用 fork() 创建子进程,子进程负责将内存数据写入硬盘的临时文件,完成后替换原有 RDB 文件。 - **优缺点**:RDB 效率高,但可能丢失最后一次快照后的数据。文件是压缩的二进制格式,适合备份和传输。 2. **AOF (Append Only File)** - AOF 记录每次改变数据的命令,提供日志式的持久化。 - **同步策略**:Redis 可配置为每次命令写入(always)、每秒同步(everysec,默认)或从不同步(no)到硬盘。 - **AOF重写**:当 AOF 文件过大时,Redis 自动触发后台重写,生成更小的包含恢复数据所需最少命令的文件。 - 开启 AOF:通过 `appendonly yes` 配置项开启,文件默认名为 `appendonly.aof`。 **Redis 主从同步** - 主从结构用于提高读取性能和数据冗余。 - **数据同步**:新数据写入主节点后,会同步到从节点。同步方式有两种:全量同步(初次或主从断开后)和增量同步(部分数据更新)。 - **网络中断处理**:若在数据传输中发生网络故障,主从将尝试重新同步,可能需要全量同步。 **Redis 哨兵机制** - 哨兵系统用于监控、故障检测和自动故障转移,提升系统的可用性。 - **作用**:监控主节点健康状态,当主节点失效时,自动将从节点升级为主节点,并通知其他从节点进行同步。 - **故障判断与转移**:哨兵系统通过心跳检测确定主节点状态,超过预设阈值即认为主节点失效。 **Redis 集群框架** - Redis 集群提供数据分片和高可用性,每个节点存储一部分数据。 - **选择**:根据需求选择合适的集群模型,如主从集群、哨兵集群或原生集群。 - **数据分布**:通过哈希槽分配数据到各个节点,确保数据分散且负载均衡。 Redis 的架构原理涉及数据的存储、恢复、扩展和高可用性,理解这些核心概念对于有效使用和管理 Redis 非常关键。
- 粉丝: 2359
- 资源: 6186
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助