Redis缓存系统怎么构建?单机部署还是集群扩展选哪个?

文章导读
构建 Redis 缓存系统应根据业务规模选择部署模式。初期开发或低并发场景推荐使用单机模式,配置简单且成本低。若需读写分离或数据备份,可选择主从复制架构。对于要求高可用的生产环境,哨兵模式能实现自动故障转移。当数据量巨大或需要水平扩展时,应采用集群模式,但需注意集群在分区期间可能丢失写操作。总体而言,单机适合测试,集群适合大规模生产,需权衡可用性与复杂度。
📋 目录
  1. A Redis 四种部署模式全解析:单机、主从、哨兵与集群
  2. B 单机用 Redis 还是本地缓存 单机 redis 和集群 redis
  3. C Redis 单机、集群、哨兵、主从架构详解
  4. D Redis 部署架构
  5. E Redis 单机、哨兵、集群搭建
  6. F FAQ
A A

构建 Redis 缓存系统应根据业务规模选择部署模式。初期开发或低并发场景推荐使用单机模式,配置简单且成本低。若需读写分离或数据备份,可选择主从复制架构。对于要求高可用的生产环境,哨兵模式能实现自动故障转移。当数据量巨大或需要水平扩展时,应采用集群模式,但需注意集群在分区期间可能丢失写操作。总体而言,单机适合测试,集群适合大规模生产,需权衡可用性与复杂度。

Redis 四种部署模式全解析:单机、主从、哨兵与集群

四种部署模式全解析:单机,主从,哨兵与集群 redis 作为全球最流行的内存 数据库,其灵活的部署模式能够满足从个人开发到企业级高并发的多样化需求。本文将从架构设计,核心功能,适用场景及配置实践四个维度,系统解析单机,主从、哨兵与集群四种模式的实现原理与实战要点。一,单机模式:快速上手的轻量级方案 架构原理与核心特性 单机模式是 redis 最基础的部署形态,所有数据存储与处理均在一台服务器上完成。其核心优势在于架构简单,部署快速,适合开发测试环境或低并发场景。配置文件 (redis.conf) 中仅需设置基础参数如端口 (port 6379),持久化策略 (save 900 1) 等即可启动服务。典型应用场景 本地开发环境:开发者 可通过 redis-server 命令快速启动实例,配合 redis-cli 进行数据操作测试。低流量缓存层:日均请求量低于 10 万的非核心业务,如用户会话存储。临时数据处理:需要快速读写但无需持久化的临时计算场景。配置实践要点 内存管理:通过 maxmemory 参数限制内存使用,避免 oom 导致服务崩溃。持久化选择:根据数据重要性选择 rdb 快照或 aof 日志,例如设置 save 60 10000 实现每 60 秒内 1 万次修改触发快照。安全加固:启用 requirepass 设置访问密码,关闭 protected-mode no (仅限可信 网络)。二,主从复制:读写分离的扩展方案 架构原理与数据流 主从模式通过复制机制实现数据同步,一个主节点 (master) 负责写操作,多个从节点 (slave) 处理读请求。复制过程分为全量同步与增量同步:全量同步通过 rdb 文件传输实现,增量同步通过主节点的复制缓冲区 (repl-backlog) 传播写命令。核心配置参数 #主节点配置 (无需特殊参数) #从节点配置示例 slaveof 192.168 . 1.100 6379 #指定主节点 ip 与端口 slave - read - only yes #设置为只读模式 repl - backlog - size 100mb #增大复制缓冲区 适用场景与优化建议 读写分离架构:将读请求分流至从节点,提升系统吞吐量。例如电商平台的商品详情查询。数据备份

单机用 Redis 还是本地缓存 单机 redis 和集群 redis

Redis 总发展过程分为 4 个阶段,分别是 1、单节点 (单机版)、2、主从节点 (读写分离)、3、哨兵模式、4、Redis-Cluster (Redis 高可用集群),以下我会详细介绍每种结构的原理以及它的优缺点。1.Redis 单机版 Redis 单机版 顾明思议只有一个 Redis 服务实例 此种模式是最原始的 Redis 使用模式、优点:1、部署方便。缺点:1、只有一个存储数据节点、造成数据不安全。2、当 Redis 实例宕机则程序无法正常使用、造成缓存雪崩。3、单节点服务访问压力过大,不适用于数据量大、需保障数据安全的应用服务。2、Redis 主从双节点 Redis 主从模式 是在单节点基础上 增加了一个数据备份的服务。优点:1、此种部署方式 增加了数据的安全性 当主节点数据损坏后我们可以通过手动配置 从节点 变更为主节点。2、读写性能受 单机配置的影响,可以主备读写分离。缺点:1、故障恢复复杂,如果没有 RedisHA 系统 (需要开发),当主库节点出现故障时,需要手动将一个从节点晋升为主节点,同时需要通知业务方变更配置,并且需要让其它从库节点去复制新主库节点,整个过程需要人为干预,比较繁琐; 2、主库的写能力受到单机的限制,可以考虑分片; 3、原生复制的弊端在早期的版本中也会比较突出,如:Redis 复制中断后,Slave 会发起 psync,此时如果同步不成功,则会进行全量同步,主库执行全量备份的同时可能会造成毫秒或秒级的卡顿;又由于 COW 机制,导致极端情况下的主库内存溢出,程序异常退出或宕机;主库节点生成备份文件导致服务器磁盘 IO 和 CPU(压缩) 资源消耗;发送数 GB 大小的备份文件导致服务器出口带宽暴增,阻塞请求,建议升级到最新版本。3.Redis Sentinel 哨兵模式 Redis Sentinel 是社区版本推出的原生高可用解决方案,其部署架构主要包括两部分:Redis Sentinel 集群和 Redis 数据集群。其中 Redis Sentinel 集群是由若干 Sentinel 节点组成的分布式集群,可以实现故障发现、故障自动转移、配置中心和客户端通知。Redis Sentinel 的节点数量要满足 2n+1(n>=1) 的奇数个。优点*:1、Redis Sentinel 集群部署简单; 2、能够解决 Redis 主从模式下的高可用切换问题; 3、很方便实现 Redis 数据节点的线形扩展,轻松突破 Redis 自身单线程瓶颈,可极大满足 缺点:1、资源浪费,Redis 数据节点中 slave 节点作为备份节点不提供服务; 2、Redis Sentinel 主要是针对 Redis 数据节点中的主节点的高可用切换,对 Redis 的数据节点做失败判定分为主观下线和客观下线两种,对于 Redis 的从节点有对节点做主观下线操作,并不执行故障转

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

一、Redis 单机模式 1.1 什么是 Redis 单机模式?Redis 单机模式是最基础的部署方式,所有的数据都存储在一个 Redis 实例中。单机模式下,Redis 提供数据存储、数据读写和数据备份等基本功能,适合小规模数据量和对高可用性要求不高的场景。1.2 单机模式特点 简单易用:Redis 单机模式的配置和使用都非常简单,只需安装和启动一个 Redis 实例即可。性能优秀:单机模式下,Redis 能够充分发挥其高性能的特点,适合轻量级应用。不具备高可用性:单机模式下,如果 Redis 实例宕机,服务将无法提供。1.3 适用场景 单机模式适用于小型项目,或者对数据可靠性和高可用性要求不高的场景。常见的应用场景包括:缓存服务器 临时数据存储 1.4 单机模式的配置 配置 Redis 单机模式非常简单,默认的 Redis 配置即支持单机运行,主要配置文件 redis.conf 中的内容如下:# Redis 服务的监听端口 port6379# 绑定本地 IP 地址 bind127.0.0.1# 是否开启持久化 (AOF 和 RDB) appendonlyyes 复制 启动 Redis 单机服务:redis-server/path/to/redis.conf 复制

Redis 部署架构

redis 部署架构有哪些类型?redis 部署架构如何选择?redis 集群架构是怎样?redis 部署架构主要有单机模式,主从模式,哨兵模式和集群模式。单机模式 单机部署,读写都在一台机器,有性能瓶颈,如果宕机了就会导致缓存不可用。主从模式 由于单机模式在⾼并发下会出现性能瓶颈,升级到⼀主多从的⽅式,master 节点处理写操作,slave 节点处理从操作,slave 从 master 同步数据。主从同步策略 主从同步在 salve 和 master 刚连接的时候进⾏全量同步,全量同步结束后开始增量同步。如果有需要,slave 在任何时候都可以发起全量同步,其主要策略就是⽆论如何⾸先会尝试进⾏增量同步,如果不成功,则会要求 slave 进⾏全量同步,之后再进⾏增量同步。全量同步 在 master 和 slave 节点建⽴连接之后,slave 会向 master 发送增量同步 (slave 会携带⾃⼰的 repid 和 offset),master 接收了 slave 的增量同步请求之后,就会拿⾃身的 replid 和 slave 的 replid 进⾏判断,如果相同则进⾏增量同步,不相同则进⾏全量同步。之后 master 会将⾃⼰的 replid 和 offset 发送给 slave.全量同步,master 会执⾏ bgsave⽣成⾃⼰的 rdb⽂件,将⾃⼰的 rdb⽂件发送给 slave,slave 清除原来已经有的 rdb,将新的 rdb 加载到内存之中。增量同步 增量同步是指在全量同步之后,从节点与主节点之间仅传输增量数据的同步⽅式。通过增量同步,从节点可以实时地获取主节点的写命令并应⽤到⾃⼰的数据集中,保持与主节点的数据⼀致性。增量同步的具体步骤为:主节点将发送给从节点的每个写命令都记录到内存中的复制积压缓冲区 (replication backlog). 从节点定期向主节点发送 psync 命令进⾏增量同步请求。主节点⽐对从节点的复制偏移量 (replication offset),如果从节点的复制积压缓冲区中的数据还在,就执⾏部分复制 (partial resynchronization),只发送从上次同步以后的写命令给从节点。从节点接收到写命令后,将其重放到⾃⼰的数据集中,使从节点的数据保持与主节点⼀致。优缺点 优点 主从复制对于 master 来说是⾮阻塞的,slave 在进⾏主从复制的过程中,master 依然可以处理请求; 主从复制对于 slave 来说也是⾮阻塞的,slave 在进⾏主从复制的过程中也可以接受外界的查询请求,只不过这时候返回的数据不⼀定是正确的.(可以在 slave 的配置⽂件中配置,在同步过程中阻⽌查询)

Redis 单机、哨兵、集群搭建

1. Redis 单机搭建 (以 6.0.6 版本为例) 2. Redis 哨兵高可用搭建 目前为了方便演示,在一台机器上以不同的端口启动 3 个服务。进行之前,先进行单节点上的前 8 个步骤。3. Redis 集群搭建 目前为了方便演示,在一台机器上以不同的端口启动 6 个服务。进行之前,先进行单节点上的前 8 个步骤。1. 集群搭建 2. 集群 slot 数量整理 reshard。3. 测试自动故障转移。cluster 集群不保证数据一致,数据也可能丢失。首先是运行客户端不断的写入或读取数据,以便能够发现问题。然后是模拟节点故障:找一个主节点关闭,主从故障切换的过程中,这个时间段的操作,客户端而言,只能是失败。官方描述 https://redis.io/topics/cluster-spec,Thereis always a window of time when it is possible to lose writes during partitions.(分区的时间窗口内总是有可能丢失写操作) 。4. 手动故障转移。5. 扩容。代码语言:javascript AI 代码解释 #1、启动新节点/usr/local/redis/bin/redis-server/usr/local/redis/conf/6387.conf #2、加入到已经存在的集群作为 master/usr/local/redis/bin/redis-cli--cluster add-node127.0.0.1:6387127.0.0.1:6382# 本质就是发送一个新节点通过 CLUSTERMEET 命令加入集群 # 新节点没有分配 hash 槽 #3、加入到已经存在的集群作为 slave/usr/local/redis/bin/redis-cli--cluster add-node127.0.0.1:6387127.0.0.1:6382--cluster-slave # 可以手工指定 master,否则就是选择一个 slave 数量较少的 master/usr/local/redis/bin/redis-cli--cluster add-node127.0.0.1:6387127.0.0.1:6382--cluster-slave--cluster-master-id# 还可以将空 master,转换为 slave(终端操作)。cluster replicate#4、检查集群/usr/local/redis/bin/redis-cli--cluster check127.0.0.1:6382 javascript AI 代码解释 # 注意:删除 master 的时候要把数据清空或者分配给其他主节点/usr/local/redis/bin/redis-cli--cluster del-node127.0.0.1:6381

FAQ

Redis 单机模式有什么缺点?

Redis缓存系统怎么构建?单机部署还是集群扩展选哪个?

单机模式不具备高可用性,如果 Redis 实例宕机,服务将无法提供,且单节点服务访问压力过大,不适用于数据量大、需保障数据安全的应用服务。

集群模式在故障切换时会丢失数据吗?

是的,cluster 集群不保证数据一致,数据也可能丢失。在分区的时间窗口内总是有可能丢失写操作,客户端在故障切换过程中操作只能是失败。

主从同步是如何进行的?

主从同步在 slave 和 master 刚连接的时候进行全量同步,全量同步结束后开始增量同步。主节点将写命令记录到复制积压缓冲区,从节点定期请求增量同步。