Redis高可用与实战

Redis实战详解:从入门到高可用架构设计 监控,>1.5 表示碎片严重使用--bigkeys扫描大 Key调整和hz避免过期集中爆发开启自动整理内存(Redis 4.0+)INFO 各模块监控指标要熟记于心,集成 Prometheus + Grafana 实现可视化告警。Redis 的强大,不在于它有多复杂,而在于它用极简的设计解决了最棘手的问题。单线程?反而成就了原子性;异步复制?换来极致性能;不支持事务回滚?那就用 Lua 弥补。它教会我们的,是。 阅读详情

1. 主从复制

Redis 主从复制是实现数据冗余、读写分离和高可用的基础机制。其核心目标是让一个或多个 从节点(Replica) 实时同步 主节点(Master) 的数据变更。

整个过程分为两个阶段:全量同步(Full Sync) 和 增量同步(Partial Sync)。


1.1 全量同步(Full Synchronization)

当从节点首次连接主节点,或因网络中断太久导致无法进行增量同步时,触发全量同步。

流程详解:

  1. 从节点发送 PSYNC 命令

    • 格式:PSYNC <runid> <offset>
    • 初次连接时,runid 为空,offset = -1。
  2. 主节点判断需全量同步

    • 因从节点无有效 runid 或 offset 不在积压缓冲区范围内,主节点决定执行全量同步。
  3. 主节点执行 BGSAVE 创建 RDB 文件

    • 在后台 fork 子进程生成 RDB 快照。
    • 主节点继续处理客户端请求。
  4. 主节点缓存写命令到复制缓冲区

    • 所有新写操作被记录到 repl-backlog-buffer(默认 1MB)。
  5. 主节点将 RDB 文件发送给从节点

    • RDB 生成后通过 socket 传输。
  6. 从节点加载 RDB 文件

    • 清空本地数据,加载 RDB,重建状态。
  7. 主节点发送复制缓冲区中的增量命令

    • 传输 RDB 期间的写命令。
  8. 进入持续增量复制阶段

缺点:大数据量下 RDB 生成和传输耗时较长。


1.2 增量同步(Partial Synchronization)

Redis 2.8+ 引入的同步机制,用于网络短暂中断后快速恢复。

关键概念:

概念说明
Replication Offset主从各自维护的偏移量,表示已复制的数据字节数。
Replication Backlog Buffer主节点维护的环形队列,保存最近的写命令。
Run ID每个 Redis 实例启动时生成的唯一标识。

增量同步流程:

  1. 从节点断线重连后,发送 PSYNC <master_runid> <last_offset>。
  2. 主节点检查:
    • runid 匹配
    • last_offset 在 backlog 范围内
    • 返回增量命令。
  3. 若任一条件不满足 → 触发全量同步。

相关配置:

repl-backlog-size 16mb      # 提高积压缓冲区大小
repl-backlog-ttl 1440       # backlog 保留时间(分钟)

2. 高可用方案

2.1 Redis Sentinel(哨兵)

2.1.1 原理概述

Redis Sentinel 是 Redis 官方提供的高可用性(HA)解决方案,用于监控多个 Redis 主从实例,并在主节点故障时自动进行故障转移(failover),确保服务持续可用。

核心功能:

  1. 监控(Monitoring)
    Sentinel 持续检查主节点和从节点是否正常运行。

  2. 通知(Notification)
    当被监控的 Redis 实例出现故障时,Sentinel 可通过 API 或脚本通知管理员。

  3. 自动故障转移(Automatic Failover)
    当主节点不可用时,Sentinel 会从多个从节点中选举出一个新的主节点,并重新配置其他从节点,使其复制新主节点。

  4. 配置提供者(Configuration Provider)
    客户端初始化时可连接 Sentinel,获取当前主节点的地址,实现动态发现。

架构图:

                    +----------------+
                    |   Client App   |
                    +-------+--------+
                            | 询问当前主节点
                            ↓
            +-------------------------------+
            |      Sentinel Cluster         |
            |  (至少3个节点,避免脑裂)      |
            +-------------------------------+
                            |
        监控与故障转移      ↓
            +------------------------+
            | Redis Master (6379)    |
            +------------------------+
                        ↑ 复制
                        |
            +------------------------+
            | Redis Replica (6380)   |
            +------------------------+

2.1.2 搭建 Sentinel 集群案例(3节点)

1. 准备 Redis 主从环境

  • 主节点:127.0.0.1:6379
  • 从节点:127.0.0.1:6380
  • Sentinel 节点:26379, 26380, 26381

2. 配置主从复制

redis-master.conf

port 6379
daemonize no
pidfile /var/run/redis-6379.pid
logfile "redis-master.log"
dir ./
requirepass masterpass
masterauth masterpass

redis-replica.conf

port 6380
daemonize no
pidfile /var/run/redis-6380.pid
logfile "redis-replica.log"
dir ./
replicaof 127.0.0.1 6379
masterauth masterpass
requirepass masterpass

启动:

redis-server redis-master.conf
redis-server redis-replica.conf

3. 配置 Sentinel 集群

sentinel-26379.conf(其他节点类似,端口不同)

port 26379
daemonize no
pidfile /var/run/sentinel-26379.pid
logfile "sentinel-26379.log"
dir ./

# 监控主节点 mymaster,quorum=2 表示至少 2 个 Sentinel 认为 master down 才触发 failover
sentinel monitor mymaster 127.0.0.1 6379 2

# 主节点密码
sentinel auth-pass mymaster masterpass

# 判断主观下线时间(毫秒)
sentinel down-after-milliseconds mymaster 5000

# 故障转移超时时间
sentinel failover-timeout mymaster 15000

# 故障转移时最多一个从节点同步
sentinel parallel-syncs mymaster 1

启动三个 Sentinel:

redis-sentinel sentinel-26379.conf --sentinel
redis-sentinel sentinel-26380.conf --sentinel
redis-sentinel sentinel-26381.conf --sentinel

4. 验证 Sentinel 集群

# 查询主节点信息
redis-cli -p 26379 sentinel master mymaster
# 查询从节点信息
redis-cli -p 26379 sentinel replicas mymaster
# 查询正在监控mymaster的其他Sentinel节点信息
redis-cli -p 26379 sentinel sentinels mymaster

2.1.3 客户端连接 Sentinel

客户端不直接连接 Redis 主节点,而是通过 Sentinel 获取主节点地址。
客户端通过 Sentinel 自动发现主节点,故障转移后自动更新连接。

Java(Jedis 示例):

Set<String> sentinels = new HashSet<>();
sentinels.add("127.0.0.1:26379");
sentinels.add("127.0.0.1:26380");
sentinels.add("127.0.0.1:26381");

JedisSentinelPool pool = new JedisSentinelPool(
    "mymaster",           // 监控的 master 名称
    sentinels,
    "masterpass"          // 主节点密码
);

try (Jedis jedis = pool.getResource()) {
    jedis.set("hello", "world");
    System.out.println(jedis.get("hello"));
}

Python(redis-py 示例):

from redis.sentinel import Sentinel

sentinel = Sentinel(
    [('127.0.0.1', 26379), ('127.0.0.1', 26380), ('127.0.0.1', 26381)],
    socket_timeout=0.1
)

# 获取主节点连接
master = sentinel.master_for('mymaster', password='masterpass', db=0)
master.set('foo', 'bar')

# 获取从节点连接(用于读)
slave = sentinel.slave_for('mymaster', password='masterpass', db=0)
print(slave.get('foo'))

2.2 Redis Cluster(集群)

2.2.1 原理概述

Redis Cluster 是 Redis 原生的分布式集群方案,支持数据分片(sharding) 和 高可用,适用于大规模生产环境。

核心特性:

  1. 数据分片(Sharding)

    • 整个数据集被划分为 16384 个 slot(槽)
    • 每个 key 通过 CRC16(key) % 16384 映射到一个 slot
    • 每个 master 节点负责一部分 slot
  2. 高可用(High Availability)

    • 每个 master 节点可配置一个或多个 replica(从节点)
    • 主节点宕机时,从节点自动发起故障转移,升级为主
  3. 去中心化(Decentralized)

    • 所有节点通过 Gossip 协议 通信,维护集群状态
    • 客户端可连接任意节点,通过 MOVED / ASK 重定向访问正确节点
  4. 水平扩展(Horizontal Scaling)

    • 支持在线添加/删除节点,并通过 reshard 迁移 slot

架构图:

                   Client
                     ↓
             Redirect (MOVED)
                     ↓
        +-----------------------+
        | Redis Cluster         |
        +-----------------------+
        | Slot 0-5500   → Node A (Master)  
        |                ↖ Node D (Replica)
        |
        | Slot 5501-11000 → Node B (Master)
        |                  ↖ Node E (Replica)
        |
        | Slot 11001-16383 → Node C (Master)
        |                   ↖ Node F (Replica)
        +-----------------------+

推荐部署:3主3从 或 6主6从,确保任意一个节点宕机不影响服务。

2.2.2 搭建 Redis Cluster 案例(3主3从)

1. 准备 6 个 Redis 实例

端口:7000~7005

redis-cluster.conf 模板:

port 7000
cluster-enabled yes
cluster-config-file nodes-7000.conf
cluster-node-timeout 5000
daemonize no
pidfile /var/run/redis_7000.pid
logfile "redis_7000.log"
dir ./
appendonly yes
requirepass clusterpass
masterauth clusterpass

复制 6 份,分别修改 port 和 cluster-config-file 对应端口。

2. 启动 6 个 Redis 节点

redis-server redis-7000.conf
redis-server redis-7001.conf
...
redis-server redis-7005.conf

3. 创建集群(使用 redis-cli)

redis-cli --cluster create \
  127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 \
  127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 \
  --cluster-replicas 1 \
  -a clusterpass
  • --cluster-replicas 1:每个 master 配 1 个 replica
  • 系统会自动分配主从关系和 slot

4. 验证集群状态

# 查看 Redis 集群中所有节点的详细信息列表,包括主节点(master)、从节点(replica)、节点 ID、IP 端口、角色、状态、复制关系、负责的 slot 范围等。
redis-cli -c -p 7000 -a clusterpass CLUSTER NODES
# 查看 Redis 集群的整体汇总信息,提供集群的健康状态、节点数量、槽分配情况等概要指标。
redis-cli -c -p 7000 -a clusterpass CLUSTER INFO

输出应显示 3 个 master、3 个 slave,状态 ok。

5. 测试读写

# 使用 `-c` 启用集群模式
redis-cli -c -p 7000 -a clusterpass
> set hello world
> get hello

客户端会自动重定向到负责该 key 的节点。

2.2.3 客户端连接 Redis Cluster

客户端只需提供部分节点地址,即可自动发现整个集群拓扑。

Java(Jedis):

Set<HostAndPort> nodes = new HashSet<>();
nodes.add(new HostAndPort("127.0.0.1", 7000));
nodes.add(new HostAndPort("127.0.0.1", 7001));
// ... 添加所有节点

JedisCluster cluster = new JedisCluster(nodes, "clusterpass");

cluster.set("foo", "bar");
String value = cluster.get("foo");
System.out.println(value);

cluster.close();

Python(redis-py):

from redis.cluster import RedisCluster

client = RedisCluster(
    host="127.0.0.1",
    port=7000,
    password="clusterpass",
    decode_responses=True
)

client.set("hello", "world")
print(client.get("hello"))

3. 常见问题与解决方案

3.1 缓存穿透

缓存穿透 是指查询一个数据库和缓存中都不存在的数据,导致每次请求都绕过缓存,直接访问数据库。

  • 例如:恶意攻击者查询 id = -1 或随机不存在的 ID。
  • 结果:数据库压力剧增,可能被拖垮。

本质:无效请求频繁访问底层存储。

方案说明
缓存空值(Null Value Caching)对于查询结果为空的 key,也缓存一个特殊值(如 nil 或 "-"),并设置较短过期时间(如 30~60 秒)。避免重复查询数据库。
布隆过滤器(Bloom Filter)在缓存层前加一层布隆过滤器,用于快速判断某个 key 是否“一定不存在”。如果布隆过滤器返回不存在,则直接拒绝请求,不查缓存和数据库。适用于写少读多的场景。
接口层校验对请求参数进行合法性校验(如 ID 格式、范围限制),提前拦截非法请求。
限流与熔断对高频访问的异常 key 进行限流(如 Redis + Lua 实现计数),防止恶意刷量。

3.2 缓存击穿

缓存击穿 是指某个热点 key 在过期瞬间,大量并发请求同时涌入,导致这些请求全部打到数据库,造成瞬时压力激增。

  • 场景:热搜新闻、秒杀商品详情页等。
  • 特点:单个 key 热点 + 过期,雪崩式数据库访问。
方案说明
热点 key 永不过期(逻辑过期)不设置 Redis 的 TTL,而是将过期时间存储在 value 中(如 JSON 里加 expire_time 字段)。读取时判断是否过期,过期则异步更新缓存,但返回旧值。
互斥锁(Mutex Lock)当缓存失效时,使用 SETNX 或 Redisson 分布式锁,只允许一个线程去数据库加载数据,其他线程等待并重试缓存。
后台定时刷新对已知热点 key,由后台任务定期主动刷新缓存,避免其过期。
-- 示例:使用 SETNX 实现互斥锁
if redis.call("set", "lock:hotkey", "1", "NX", "EX", 10) then
    -- 加载数据
    local data = load_from_db()
    redis.call("set", "hotkey", data, "EX", 3600)
    redis.call("del", "lock:hotkey")
    return data
else
    -- 等待并重试
    return nil
end

3.3 缓存雪崩

缓存雪崩 是指在同一时间大量 key 集中过期,导致大量请求同时穿透到数据库,造成数据库压力骤增甚至宕机。

  • 常见原因:
    • 批量导入数据时统一设置相同 TTL。
    • Redis 故障重启,缓存全量失效。
    • 定时任务清空缓存。

本质:缓存层大面积失效,流量全部压向数据库。

方案说明
随机过期时间(Random TTL)设置 key 时,TTL 加上一个随机值(如 3600 + rand(1, 300)),避免大量 key 同时过期。
高可用架构使用 Redis Cluster 或 Sentinel,避免单点故障导致全量缓存失效。
多级缓存(Local + Redis)使用本地缓存(如 Caffeine、Guava Cache)作为一级缓存,即使 Redis 失效,本地缓存仍可抗住部分流量。
限流降级使用 Hystrix、Sentinel 等组件,在数据库压力过大时进行限流或返回默认值(降级)。
持久化与快速恢复开启 AOF/RDB,确保 Redis 重启后能快速恢复数据。

3.4 热Key与大Key

类型描述风险
热 Key(Hot Key)某个 key 被极高频率访问(如微博热搜)。单个 Redis 节点 CPU 或带宽打满,导致响应变慢或超时。
大 Key(Big Key)某个 key 存储了大量数据(如一个包含 10 万元素的 Hash、List)。网络阻塞、阻塞其他请求、删除时引发 DEL 阻塞、主从同步延迟。

Redis 是单线程处理命令,大 key 的读写/删除操作会阻塞其他请求。

热 Key 处理

方案说明
本地缓存 + 失效通知在应用层使用本地缓存(如 Caffeine)缓存热 key,设置较短 TTL。Redis 中 key 更新时,通过消息队列或发布订阅通知各节点失效本地缓存。
拆分 key将一个热 key 拆分为多个 key(如 hotkey_1, hotkey_2),通过轮询或哈希访问,分散压力。
读写分离使用 Redis Cluster,让多个 replica 分担读请求。

大 Key 处理

方案说明
拆分结构- Hash → 拆分为多个小 Hash
- List → 拆分为多个 List 或使用分页
- Set/ZSet → 分片存储
使用合适数据结构避免用 List 存大量数据,可考虑用 ZSet + score 实现排序分页。
异步删除使用 UNLINK 替代 DEL,UNLINK 会立即返回,后台线程异步释放内存。
监控与告警使用 redis-cli --bigkeys 或监控工具(如 RedisInsight)定期扫描大 key,及时发现并处理。
限制单 key 大小在业务设计阶段就规定单 key 不超过 10KB,List/Hash 元素不超过 1000 个。
># 扫描大 key
redis-cli --bigkeys
# 查看内存分布
redis-cli MEMORY USAGE key_name

做蛋白组学数据分析,竟然还不会使用DIA-NN软件,走过路过不要错过,进来免费学习!!! 蛋白组学分析工具DIA-NN使用 阅读详情

相关推荐

光伏发电预测(LSTM、CNN_LSTM和XGBoost回归模型,Python代码)

一旦结果与预测差距较大,可能存在光伏系统的问题,需要找出原因,然后采取适当措施来修复光伏系统并做出更好的决策。例如,根据准确的预测,光伏系统运营商可以平衡电力消耗,并将多余的电力储备用于紧急情况。然而,光伏系统的发电量估算是一个挑战,因为光伏系统的发电量受到天气条件的极大影响。整个项目文件夹(第一个文件夹为xgboost模型相关的包文件,xg.py是xgboost模型英文注释版本,xg_chinese.py是xgboost模型中文注释版本)表示空气的温度,通常以摄氏度(°C)或华氏度(°F)为单位。

2301_79699110的博客 3033

【进阶篇】2.15 Redis 高可用集群(Redis Cluster)详解

前面两个章节我们学习关于Redis 中的高可用 Redis主从复制. 以及Redis的哨兵模式(sentinel)。我们能够发现上面两种方式主要解决读写分离,备份冗余,以及故障恢复,故障转移。但是无法解决redis的性能问题,我们如果做过测试会发现 redis在单节点的情况下,只能将CPU的一个核心跑满。这主要是因为由于Redis是单线程的,无法充分利用多核CPU的优势,因此在高并发场景下可能会出现性能瓶颈。为了解决这个问题,Redis提供了集群技术,可以将数据分布在多个节点上,实现分布式存储和高并发读写。

日拱一卒无有尽,功不唐捐终入海 1596

gesp c++ 八级知识点

gesp c++ 八级知识点

MMD.然大大 2243

保姆教程系列三、Redis高可用(Cluster集群模式)

看完redis集群高可用后,领导双手竖起了大拇指

南国以南i的博客 1345

PPPoE上网配置不求人:华为路由器命令行操作指南(2023最新版)

本文提供2023年最新的华为路由器PPPoE上网配置命令行操作指南。通过详细的步骤讲解,从连接设备、创建拨号接口、绑定PPPoE客户端到配置内网与NAT,手把手教你完成配置,并附有验证排错方法,助你轻松实现稳定上网。

s4t5u6v的博客 681

大模型技术驱动智慧矿山数字化转型

多模态大模型作为AI领域的前沿技术,通过融合视觉、传感器等多源数据,构建了强大的环境理解与决策能力。其核心价值在于打破数据孤岛,实现实时分析与智能响应,特别适用于工业场景中的复杂系统优化。在智慧矿山建设中,该技术通过数字孪生、设备自诊断和智能调度等模块,显著提升了安全生产效率和资源利用率。典型应用包括基于强化学习的采掘路径规划、多层级灾害预警体系构建,以及可自我更新的矿山知识图谱系统,这些创新正在推动传统矿业向数字化、智能化方向转型。

weixin_29061531的博客 222

Redis Cluster集群的简介

Redis Cluster集群的简介简介Redis Cluster集群特点Redis Cluster容错redis-cluster节点分配Redis Cluster高可用(Redis Cluster主从模式)Redis Cluster总结 简介 • 为什么使用redis-cluster?       为了在大流量访问下提供稳定的业务,集群化是存储的必然形态 Redis集群搭建的方式有多种,但从redis 3.0之后版本支持redis-cluste

Hello World 617

【乐鑫】唤醒词修改方法

乐鑫科技的语音识别模块(如ESP-SR)支持自定义唤醒词,但需通过官方工具链完成。

以实战经验介绍行业知识 827

Redis高可用实战之Cluster

在 Redis Cluster 中每个 Hash Slot 可拥有多个副本,当每个 master 都存在副本时,其中一个 master 故障后,它的副本将被提升为新的 master,这样整个集群仍然可用。当前集群有6个节点,但只有1个master,而我们期望的是3个 master,每个 master有1个副本,此时需要调整 slots 的分布。关闭集群中的一个 master 实例,集群开始故障转移,它的副本将被自动提升为新的 master ,整个集群仍然可用。......

逗小豆zz的博客 584

如何安装最新版本的 SAP ABAP Development Tool ( ADT ) ,并且能够随时升级

下载链接:https://tools.hana.ondemand.com/#abap 首先安装 Eclipse IDE for Java Developers 找到适合自己操作系统的 Eclipse 安装包: 安装之后,打开Eclipse: Install -> New Softwares, 输入 url:https://tools.hana.ondemand.com/latest 全部安装: 安装完毕之后,新建一个 ABAP Project,本地 SAP GUI 里添加的系统,会自动带出来:

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 4282

用扩展点为 Fiori Elements 添加自定义动作:从原理到落地的完整实践

本文介绍了如何在基于OData V4的Fiori Elements应用中通过Extension Points添加自定义Action按钮。主要内容包括: 扩展点动作与标准注解动作的区别:扩展点用于非标准前端流程、组合操作等场景,需通过extensionAPI与框架交互。 扩展点动作的插入位置:可放置在List Report表格工具栏、Object Page页眉/页脚/Section工具栏等位置,并说明了相应的manifest.json配置节点。 配置模型与处理函数契约:详细说明了press、visible/e

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 250

详解Redis 高可用的方式 Redis Cluster

故障节点的从节点竞选成为新主节点,其他节点更新槽映射与配置,客户端自动重定向。缺点 哨兵模式需要部署和配置额外的哨兵节点,增加了系统的复杂性,并且主节点发生故障后,新的主节点可能会有一段时间的数据不一致,影响数据的准确性。集群的端口:每个Redis集群节点需要打开两个TCP连接,一个用于客户端连接,另一个用于集群节点间通信,后者使用的是二进制协议。虽然Redis Cluster支持故障转移,但如果主节点和其所有从节点同时宕机,那么该节点的数据将会丢失,集群将不可用。

脚踏实地,仰望星空 1619

YOLOv8结合GhostNet实现轻量化目标检测:模型设计与性能评测

GhostNet系列的核心是**“幽灵特征图(Ghost Feature Map)”** 概念:通过简单的线性变换(如深度卷积)生成“幽灵特征”,这些特征与原始特征融合后,能以极低的计算成本带来丰富的语义信息。为了突出GhostNet系列的必要性,设计消融实验:分别测试“仅主卷积”“仅幽灵卷积”“GhostNet(主卷积+幽灵卷积)”三种方案的性能,用数据证明“幽灵特征”的不可替代性。简单来说,引入GhostNet系列的YOLOv8,既能体现你的技术深度,又能让毕设的“落地性”大幅提升。

m0_71589036的博客 116

Redis 实战搭建高可用架构

前言:最近在看关于redis缓存方面的知识,今天就来个 Redis sentinel 高可用架构,实战开始之前,先看看sentinel的概念 什么是redis-sentinel   Redis-Sentinel是Redis官方推荐的高可用性(HA)解决方案,当用Redis做Master-slave的高可用方案时,假如master宕机了,Redis本身(包括它的很多客户端)都没有实现自...

weixin_34248849的博客 122

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Redis高可用之哨兵架构实战

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录系列文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结 前言 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。 提示:以下是本篇文章正文内容,下面案例

xiaolinzi176的博客 731

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Redis哨兵模式:自动故障转移与高可用实战

Redis哨兵(Sentinel)是Redis官方推荐的高可用解决方案,它是一个分布式系统,用于监控Redis主从架构中的节点状态,并在主节点故障时自动进行故障转移。[文字描述:Redis哨兵架构图,展示了多个哨兵节点监控一个Redis主从复制架构。图中包含一个主节点、多个从节点,以及多个哨兵节点。哨兵节点相互连接形成网络,同时监控所有Redis节点,当主节点故障时能够自动选举新的主节点。监控(Monitoring):持续检查主从节点是否正常运行通知(Notification)

m0_65382359的博客 962

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

Redis哨兵配置与实战:构建可靠的高可用性架构

Redis 哨兵是一种分布式系统,用于高可用性(HA)解决方案的监控和故障自动转移。哨兵通过发送命令并接收 Redis 实例的响应来监控主服务器和从服务器的健康状况。一旦主服务器发生故障,哨兵会自动将一个从服务器升级为新的主服务器,并让其他从服务器指向新的主服务器。通过本文的介绍,我们了解了 Redis 哨兵的配置和工作原理。通过哨兵系统,我们能够实现 Redis 环境中的高可用性和自动故障转移,确保服务的稳定运行。这对于构建可靠的线上服务是非常关键的。希望这篇文章能帮助你更好地理解和使用Redis哨兵。

1426

Redis Cluster 集群:高可用与分片实战

生产环境建议使用奇数个主节点(如 3/5/7)以优化故障选举效率。采用哈希槽(Slot)分配数据,总槽数固定为。

2501_93878698的博客 332

Redis集群高可用实战部署(Redis Cluster High Availability Practical Deployment)

sentinel是一个分布式系统,可以在一个架构中运行多个sentinel进程,这些进程使用流言协议(gossip protocols)来接收关于redis主服务器是否下线的信息,并使用投票协议(agreement protocols)来决定是否执行自动故障迁移,以及选举哪个从服务器成为新的主服务器。本章详细介绍使用Redis-sentinel服务搭建redis高可用集群。

Linux运维老纪的博客 2306

Redis 高可用实战源码解析(Sentinel + Cluster 整合应用)

在生产环境中,Redis 高可用方案通常结合,保证系统稳定运行。

波波烤鸭的博客 1252

【Redis缓存实战应用指南:从入门到高可用】

本文深入解析Redis核心特性与缓存策略。首先介绍Redis作为高性能内存数据库的优势,对比传统数据库,突出其高速读写和丰富数据结构的特点。详细讲解五大数据类型:String(字符串缓存)、Hash(对象存储)、List(有序列表)、Set(无序集合)和ZSet(有序集合),提供各类型常用命令示例及适用场景。最后针对缓存穿透和缓存击穿问题,给出解决方案:缓存空对象、布隆过滤器防止穿透,互斥锁避免击穿。全文帮助开发者掌握Redis核心功能,构建高效缓存系统。

想学后端的前端程序员的博客 885

【Redis】深入理解Redis哨兵模式:原理、配置与高可用实战

Redis哨兵模式(Sentinel)是官方提供的高可用解决方案,通过引入哨兵节点实现主从复制的自动监控、故障检测和转移。哨兵集群基于心跳检测、投票选举和故障转移三大机制工作:定期检查节点状态,通过主观下线和客观下线确认故障,选举领导者执行主从切换。推荐部署3个哨兵节点,配置时需设置quorum值(通常为2)和主节点信息。哨兵模式能实现秒级故障转移,无需人工干预,显著提升Redis服务的可用性。

专注分享Java 核心进阶、全栈架构实战、AI 工具链落地干货,用技术视角拆解编程效率与创意生成的底层逻辑 。 832

Redis高可用集群之水平扩展操作实战

第一节 Redis的安装 第二节 Redis的五种数据结构(String、Hash、List、Set、ZSet) 第三节 Redis的持久化方式 第四节 Redis主从架构 第五节 Redis哨兵高可用架构 第六节 Redis集群高可用架构 第七节 Redis集群选举原理与脑裂问题从《Redis集群高可用架构》这一节的基础上,本节介绍Redis水平扩展的操作实战。 在三台机器上面分别执行以下的命令启动所有的redis服务 二、连接集群 连接任意一个客户端 集群状态 从上面的打印结果可知,集群运行正常,三

IUNIQUE技术册 548

Redis实战总结-Redis的高可用性

在之前的博客《Redis实战总结-配置、持久化、复制》给出了一种Redis主从复制机制,简单地实现了Redis高可用。然后,如果Master服务器宕机,会导致整个Redis瘫痪,这种方式的高可用性较低。正常会采用多台Redis服务器构成一个集群,即使某台,或者某几台Redis宕机,Redis集群仍能正常运行,从而提高其高可用性。 在Redis中,主要存在两种方式实现Redis集群机制: Re

guweiyu_thinker的博客 1万+

从零到一:Harbor高可用Redis集群部署实战指南

你是否曾因容器镜像仓库缓存服务中断导致业务瘫痪?是否在寻找一种简单可靠的Redis集群配置方案?本文将通过Harbor项目内置的Redis配置工具和最佳实践,带你在15分钟内完成高可用缓存服务部署,解决镜像拉取延迟、服务稳定性差等核心痛点。读完本文你将掌握:Redis主从架构配置、数据持久化策略、 Harbor集成要点及故障转移实战。 ## 为什么选择Redis集群作为Harbor缓存 Har...

gitblog_00887的博客 1098

Redis高可用集群搭建实战

本文详细介绍了Redis高可用集群的搭建实战,包括集群搭建的背景、步骤、运维等方面。通过搭建高可用集群,可以有效解决单点故障问题,提高系统的可用性和稳定性。性能优化:针对Redis高可用集群的性能瓶颈进行优化,提高系统性能。自动化运维:研究自动化运维工具,简化集群运维工作。总之,Redis高可用集群的搭建和应用对于确保互联网应用的高可用性具有重要意义。通过不断研究和实践,我们可以更好地发挥Redis的优势,为互联网应用提供更加稳定、高效的服务。

2501_92487266的博客 986
上一篇: Redis核心进阶
下一篇: JavaScript Web API
CodeZX合壹
博客等级 码龄3年 52粉丝 40原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值