当前位置: 首页 > article >正文

Redis单机、集群、哨兵、主从架构详解

一、Redis 单机模式

1.1 什么是 Redis 单机模式?

Redis 单机模式是最基础的部署方式,所有的数据都存储在一个 Redis 实例中。单机模式下,Redis 提供数据存储、数据读写和数据备份等基本功能,适合小规模数据量和对高可用性要求不高的场景。

1.2 单机模式特点

  • 简单易用:Redis 单机模式的配置和使用都非常简单,只需安装和启动一个 Redis 实例即可。
  • 性能优秀:单机模式下,Redis 能够充分发挥其高性能的特点,适合轻量级应用。
  • 不具备高可用性:单机模式下,如果 Redis 实例宕机,服务将无法提供。

1.3 适用场景

单机模式适用于小型项目,或者对数据可靠性和高可用性要求不高的场景。常见的应用场景包括:

  • 缓存服务器
  • 临时数据存储

1.4 单机模式的配置

配置 Redis 单机模式非常简单,默认的 Redis 配置即支持单机运行,主要配置文件 redis.conf 中的内容如下:

# Redis 服务的监听端口
port 6379

# 绑定本地 IP 地址
bind 127.0.0.1

# 是否开启持久化(AOF 和 RDB)
appendonly yes

启动 Redis 单机服务:

redis-server /path/to/redis.conf

二、Redis 主从复制模式

2.1 什么是主从复制?

Redis 主从复制(Master-Slave Replication)是指通过将一台 Redis 实例的数据同步到多台从节点(Slave)上,从而实现读写分离和数据冗余。主节点负责处理写操作,从节点负责读取数据。

2.2 主从复制模式的特点

  • 数据冗余:主从复制可以确保数据被同步到从节点上,从而避免单点故障带来的数据丢失风险。
  • 读写分离:主节点负责处理写操作,从节点处理读操作,提升读的性能。
  • 缺点:主节点宕机时,无法自动完成主从切换,需要手动提升从节点为主节点。

2.3 主从复制的工作原理

主从复制模式下,主节点负责将数据的变更操作记录在 replication buffer 中,并定期将这些操作推送给从节点,从节点执行这些操作以保持与主节点数据的一致性。

  • 主节点写入数据。
  • 从节点通过与主节点的 SYNCPSYNC 命令来进行数据同步。
  • 数据同步完成后,从节点接收主节点的变更推送,保持数据一致。

2.4 主从复制模式的配置

redis.conf 中配置主从复制非常简单,只需在从节点上配置主节点的地址:

# 配置从节点同步主节点
replicaof 192.168.1.100 6379

启动主节点和从节点后,主节点会自动同步数据给从节点。

2.5 适用场景

主从复制模式适用于读多写少的应用场景,通过读写分离提升性能,例如:

  • 读写比非常高的缓存场景
  • 需要数据冗余但不需要自动故障切换的场景

三、Redis 哨兵模式

3.1 什么是哨兵模式?

Redis 哨兵模式(Sentinel)是在主从复制的基础上引入了自动化的故障检测和主从切换机制。当主节点出现故障时,哨兵能够自动将某个从节点提升为主节点,确保服务的高可用性。

3.2 哨兵模式的特点

  • 自动故障切换:当主节点宕机时,哨兵会自动选择一个从节点作为新的主节点,并通知其他从节点进行数据同步。
  • 故障检测:哨兵不断监测主节点、从节点以及其他哨兵的状态,一旦发现异常会及时报警或进行切换。
  • 配置中心:哨兵可以作为 Redis 客户端的配置中心,客户端只需连接哨兵,便可获取当前的主节点地址。

3.3 哨兵模式的架构

哨兵模式包含以下组件:

  • 主节点(Master):负责处理写操作和从节点的数据同步。
  • 从节点(Slave):负责处理读请求,并接受主节点的数据同步。
  • 哨兵(Sentinel):负责监控主节点和从节点的状态,并在主节点宕机时进行主从切换。

3.4 哨兵模式的配置

哨兵的配置文件 sentinel.conf 主要包括监控的主节点信息和一些其他参数:

# 哨兵监控的主节点
sentinel monitor mymaster 192.168.1.100 6379 2

# 哨兵认为主节点宕机的判断标准
sentinel down-after-milliseconds mymaster 5000

# 哨兵在检测到主节点宕机后的切换时间
sentinel failover-timeout mymaster 180000

启动哨兵服务:

redis-sentinel /path/to/sentinel.conf

3.5 适用场景

哨兵模式适用于对数据可用性要求较高的应用场景,尤其是需要自动化的主从切换和高可用性保障的场景,例如:

  • 在线交易系统
  • 实时数据处理系统

四、Redis 集群模式

4.1 什么是 Redis 集群?

Redis 集群模式是通过数据分片的方式,将数据分布在多个节点上,实现高可用和高扩展性的一种模式。集群模式中没有单一的主节点,所有节点都是对等的。

4.2 集群模式的特点

  • 数据分片:通过哈希槽(hash slots)将数据均匀分布在多个节点上,每个节点只负责一部分数据的存储和操作。
  • 高可用性:集群模式支持主从结构,一个数据分片可以有多个副本,主节点宕机时可以自动切换到从节点。
  • 线性扩展:随着节点数量的增加,Redis 集群的容量和性能可以线性扩展。

4.3 集群模式的工作原理

  • 哈希槽:Redis 集群通过将所有可能的键值划分为 16384 个哈希槽(hash slots),每个节点负责部分哈希槽的数据。
  • 节点间通信:集群中的每个节点都会定期向其他节点发送 PING 和 PONG 消息,保持集群状态的同步。
  • 数据路由:当客户端访问 Redis 集群时,它会根据键的哈希值计算出数据存储的哈希槽,并将请求路由到对应的节点。

4.4 集群模式的配置

配置 Redis 集群需要在 redis.conf 中启用集群模式并指定节点的相关配置:

# 启用集群模式
cluster-enabled yes

# 集群配置文件
cluster-config-file nodes.conf

# 集群节点超时时间
cluster-node-timeout 5000

启动 Redis 节点并使用 redis-cli 创建集群:

redis-cli --cluster create 192.168.1.100:6379 192.168.1.101:6379 192.168.1.102:6379 --cluster-replicas 1

4.5 适用场景

Redis 集群模式适用于对高可用性、高并发和大数据量有需求的场景,例如:

  • 分布式缓存系统
  • 大型互联网应用的数据存储

五、总结

Redis 提供了多种部署架构,以满足不同场景下的性能和可用性需求。从单机模式、主从复制、哨兵模式到集群模式,每种架构都有其独特的优缺点和应用场景。

  • 单机模式:适合小型项目和对高可用性要求不高的场景。
  • 主从复制:通过读写分离提高读性能,适合

读多写少的场景。

  • 哨兵模式:提供自动故障切换功能,适合高可用性要求高的场景。
  • 集群模式:通过数据分片实现高扩展性和高可用性,适合大型分布式应用。

选择合适的 Redis 部署模式,能够帮助我们在不同的应用场景下,充分发挥 Redis 的高性能和高可用性。


http://www.kler.cn/a/302173.html

相关文章:

  • 【NLP 17、NLP的基础——分词】
  • 【Object字段缺失】JS的对象在更新后发现Key值消失
  • 概率论 期末 笔记
  • springboot项目对数据库密码加解密
  • 【FAQ】HarmonyOS SDK 闭源开放能力 — Vision Kit(2)
  • JavaScript中的Set、Map、WeakSet和WeakMap
  • 【专题】2024跨境出海供应链洞察-更先进供应链报告合集PDF分享(附原数据表)
  • SpringBoot登录退出|苍穹外卖登录退出分析
  • 软硬链接与动静态库概览
  • 【Python机器学习】循环神经网络(RNN)——循环网络的记忆功能
  • 如何在Chrome中使用HTML构建交互式网页
  • sklearn-逻辑回归-特征工程示例
  • 深度学习-02 Pytorch
  • 安卓显示驱动
  • Flutter 响应式框架
  • Ubuntu20如何设置网络
  • 监控系统添加vcenter上的esxi主机
  • Kafka高吞吐量的原因
  • 苹果的“AI茅”之路只走了一半
  • Unity3D 自定义Debug双击溯源问题详解
  • 何为信创?信创有哪些?
  • FPGA技术赋能云数据中心:提高性能与效率
  • DevOps -分布式追踪与监控
  • 自定义Spring-start学习笔记
  • php转职golang第二期
  • 9.13学习记录