news 2026/6/10 7:05:10

redis集群部署

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
redis集群部署

文章目录

  • 前言
  • 一、redis集群概述
  • 二、redis集群的作用
  • 三、工作流程
  • 四、redis集群的数据分片 重点
  • 五、一台服务器搭建redis集群
    • 1、环境规划
    • 2、redis安装
    • 3、创建6个redis实例
    • 4、启动集群
    • 5、测试集群
  • 六、三台服务器做三主三从
    • 1、环境规划
    • 2、系统设置(所有节点)
    • 3、安装部署redis(所有节点)
    • 4、创建集群节点(所有节点)
    • 5、启动所有redis节点
    • 6、创建集群(任选一台)
    • 7、测试
  • 总结

前言

Redis 集群是分布式架构的核心实现,通过分片存储与主从复制保障高可用、高扩展,本文从原理到实操,详解集群作用、数据分片核心,并提供单机多实例及三主三从部署方案,助力快速落地。


一、redis集群概述

集群(Redis Cluster),Redis 3.0开始引入的分布式存储方案。
集群由多个节点(Node)组成,Redis的数据分布在这些节点中。集群中的节点分为主节点和从节点:只有主节点负责读写请求和集群信息的维护;从节点只进行主节点数据和状态信息的复制。

二、redis集群的作用

1、数据分区:集群将数据分散到多个节点,一方面突破了Redis单机内存大小的限制,存储容量大大增加;另一方面每个主节点都可以对外提供读服务和写服务,大大提高了集群的响应能力。
2、高可用:集群支持主从复制和主节点的自动故障转移(与哨兵类似);当任一节点发生故障时,集群仍然可以对外提供服务。

三、工作流程

1、每次写入数据,先校验哈希槽值,再存入对应的master
如:在master1写入a1 1,如果哈希槽值是15000,那么就会自动路由到master3存入数据。
2、master3写入的数据,master2和master1无法查询,只有slave3能查
心跳的作用:

  • 维护集群拓扑结构:让所有节点知道 “集群有哪些节点、各自负责什么槽位。
  • 故障检测:发现宕机的 master 节点,为自动故障转移做准备
  • 同步集群配置变更:确保所有节点配置一致
  • 验证节点身份:防止非法节点混入集群

四、redis集群的数据分片 重点

Redis集群引入了哈希槽的概念,Redis集群有16384个哈希槽(编号0-16383)集群的每个节点负责一部分哈希槽。
即每个Key通过CRC16校验后对16384取余来决定放置哪个哈希槽,通过这个值,去找到对应的插槽所对应的节点,然后直接自动跳转到这个对应的节点上进行存取操作。
示例:
以3个节点组成的集群为例

  • 节点A包含0到5460号哈希槽
  • 节点B包含5461到10922号哈希槽
  • 节点C包含10923到16383号哈希槽
    Redis集群的主从复制模型
    集群中具有A、B、C三个节点,如果节点B失败了,整个集群就会因缺少5461-10922这个范围的槽而不可以用。为每个节点添加一个从节点A1、B1、C1整个集群便有三个Master节点和三个slave节点组成,在节点B失败后,集群选举B1位为的主节点继续服务。当B和B1都失败后,集群将不可用。

五、一台服务器搭建redis集群

1、环境规划

三主三从架构
服务器:192.168.10.102

2、redis安装

#1关闭防火墙和增强服务systemctl stop firewalld systemctl disable firewalld setenforce0#2安装依赖yuminstall-y gcc gcc++make#3解压redis文件和编译安装cd/opt/tarzvxf redis-5.0.7.tar.gz -C /opt/cd/opt/redis-5.0.7/#由于Redis源码包中直接提供了 Makefile 文件,所以在解压完软件包后,不用先执行 ./configure 进行配置make&&makePREFIX=/usr/local/redisinstall#4、创建软链接(添加到path路径),让Linux能直接找到redis的server文件ln-s /usr/local/redis/bin/* /usr/local/bin/#5执行脚本获取redis服务配置文件cd/opt/redis-5.0.7/utils ./install_server.sh#6查看redis端口号,是否启动成功#net-tools包netstat-antulp|grepredis

3、创建6个redis实例

# 1创建6个redis目录mkdir-p redis-cluster/redis600{1..6}# 2创建6个实例foriin{1..6}do# 复制6个redis.conf文件cp/opt/redis-5.0.7/redis.conf /etc/redis/redis-cluster/redis600$i# 复制6个redis.cli和6个redis.servercp/opt/redis-5.0.7/src/redis-cli /opt/redis-5.0.7/src/redis-server /etc/redis/redis-cluster/redis600$idone

修改如下配置文件(6个)

#其他5个文件夹的配置文件以此类推修改,注意6个端口都要不一样。cd/etc/redis/redis-cluster/redis6001vimredis.conf#bind 127.0.0.1 #69行,注释掉bind 项,默认监听所有网卡protected-mode no#88行,修改,关闭保护模式port6001#92行,修改,redis监听端口,(其他5个端口不一样)daemonizeyes#136行,开启守护进程,以独立进程启动cluster-enabledyes#832行,取消注释,开启群集功能cluster-config-file nodes-6001.conf#840行,取消注释,群集名称文件设置cluster-node-timeout15000#846行,取消注释群集超时时间设置appendonlyyes#700行,修改,开启AOF持久化

启动redis节点

fordin{1..6}docd/etc/redis/redis-cluster/redis600$d# 启动 Redis 服务端进程,并指定加载redis.conf配置文件redis-server redis.confdone

查看:ps -ef | grep redis

4、启动集群

# --replicas 1 表示每个主节点有1个从节点。redis-cli --cluster create127.0.0.1:6001127.0.0.1:6002127.0.0.1:6003127.0.0.1:6004127.0.0.1:6005127.0.0.1:6006 --cluster-replicas1

5、测试集群

redis-cli -p 6001 -c
127.0.0.1:6001> cluster slots


查看哈希槽值

六、三台服务器做三主三从

1、环境规划

192.168.10.105 主节点6001 从节点6002
192.168.10.106 主节点6001 从节点6002
192.168.10.107 主节点6001 从节点6002
前提条件:
redis5.0.7
CentOS 7.9
所有服务器互通:ping通、端口6001、6002放行
禁用防火墙和selinux(生产环境精准放行端口即可)

2、系统设置(所有节点)

# 关闭防火墙和增强服务systemctl stop firewalld systemctl disable firewalld# /etc/sysconfig/selinux永久关闭setenforce0

3、安装部署redis(所有节点)

# 安装依赖yuminstall-y gcc gcc-c++makewgetvim# 时间同步yuminstall-y ntpdate ntpdate ntp.aliyun.com# 同步失败多试几次,可能因为网络原因# 下载rediswget-P /opt/ https://download.redis.io/releases/redis-5.0.7.tar.gzcd/opttarzxvf redis-5.0.7.tar.gzcdredis-5.0.7# 必须路径写前面,否则安装在默认位置。# PREFIX 是 Redis Makefile 中定义的变量,需要传递给 make 命令本身,而非 install 目标make&&makePREFIX=/usr/local/redisinstallln-s /usr/local/redis/bin/* /usr/local/bin/cd/opt/redis-5.0.7/utils ./install_server.sh# 查看netstat-antulp|grepredis

4、创建集群节点(所有节点)

pkill-9 redismkdir-p /etc/redis/cluster/{redis6001,redis6002}cp/opt/redis-5.0.7/redis.conf /etc/redis/cluster/redis6001cp/opt/redis-5.0.7/redis.conf /etc/redis/cluster/redis6002vim/etc/redis/cluster/redis6001/redis.conf# 修改配置文件#bind 127.0.0.1 #69行,注释掉bind 项,默认监听所有网卡protected-mode no#88行,修改,关闭保护模式port6001#92行,修改,redis监听端口,daemonizeyes#136行,开启守护进程,以独立进程启动cluster-enabledyes#832行,取消注释,开启群集功能cluster-config-file nodes-6001.conf#840行,取消注释,群集名称文件设置cluster-node-timeout15000#846行,取消注释群集超时时间设置appendonlyyes#700行,修改,开启AOF持久化cp/etc/redis/cluster/redis6001/redis.conf /etc/redis/cluster/redis6002/redis.confvim/etc/redis/cluster/redis6002/redis.conf port6002#92行,修改,redis监听端口

5、启动所有redis节点

cp/opt/redis-5.0.7/src/redis-cli /opt/redis-5.0.7/src/redis-server /etc/redis/cluster/redis6001/cp/opt/redis-5.0.7/src/redis-cli /opt/redis-5.0.7/src/redis-server /etc/redis/cluster/redis6002/cd/etc/redis/cluster/redis6001 redis-server redis.confcd/etc/redis/cluster/redis6002 redis-server redis.conf

6、创建集群(任选一台)

redis-cli --cluster create192.168.10.105:6001192.168.10.105:6002192.168.10.106:6001192.168.10.106:6002192.168.10.107:6001192.168.10.107:6002 --cluster-replicas1

7、测试

redis-cli -p 6001 -c
在192.168.10.105 添加数据a1 111 和 a2 2
数据保存进行路由。

在192.168.10.106查到a1

在192.168.10.107查到a2


总结

本文系统梳理 Redis 集群核心逻辑,聚焦数据分片关键技术,通过单机 6 实例与三台服务器三主三从的实操部署,结合测试验证,完整呈现集群搭建全流程,为高可用部署提供可落地指南。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 15:35:18

多模态AI实战指南:从技术选型到企业级部署

多模态AI实战指南:从技术选型到企业级部署 【免费下载链接】CogVLM a state-of-the-art-level open visual language model | 多模态预训练模型 项目地址: https://gitcode.com/gh_mirrors/co/CogVLM 还在为如何选择合适的多模态AI技术而困扰吗?面…

作者头像 李华
网站建设 2026/6/10 14:16:46

Obsidian Ink 终极指南:快速开启手写笔记新时代

Obsidian Ink 终极指南:快速开启手写笔记新时代 【免费下载链接】obsidian_ink 项目地址: https://gitcode.com/gh_mirrors/ob/obsidian_ink 想要在数字笔记中找回手写的自由感吗?Obsidian Ink 插件为您带来革命性的手写笔记体验。这款基于 tldr…

作者头像 李华
网站建设 2026/6/10 14:17:47

Wan2.2-T2V-A14B生成视频的帧间抖动抑制算法解析

Wan2.2-T2V-A14B生成视频的帧间抖动抑制机制深度解析 在影视级AI内容生成逐渐从实验室走向片场和广告公司的今天,一个看似微小却致命的问题始终困扰着文本到视频(Text-to-Video, T2V)模型的实际落地——帧间抖动。你可能见过这样的画面&#…

作者头像 李华
网站建设 2026/6/10 6:11:18

Wan2.2-T2V-A14B对少数民族语言的支持现状调研

Wan2.2-T2V-A14B对少数民族语言的支持现状调研 在AI生成内容高速演进的今天,文本到视频(Text-to-Video, T2V)技术正从实验室走向真实世界的应用场景。影视制作、广告创意、在线教育等领域已开始尝试用AI替代部分传统视频生产流程。阿里巴巴推…

作者头像 李华
网站建设 2026/6/10 14:15:30

kiss-translator终极离线翻译指南:断网环境也能高效阅读外文

kiss-translator终极离线翻译指南:断网环境也能高效阅读外文 【免费下载链接】kiss-translator A simple, open source bilingual translation extension & Greasemonkey script (一个简约、开源的 双语对照翻译扩展 & 油猴脚本) 项目地址: https://gitco…

作者头像 李华
网站建设 2026/6/10 14:15:16

芝麻粒-TK:蚂蚁森林自动化能量收取终极指南

芝麻粒-TK:蚂蚁森林自动化能量收取终极指南 【免费下载链接】Sesame-TK 芝麻粒-TK 项目地址: https://gitcode.com/gh_mirrors/ses/Sesame-TK 芝麻粒-TK是一款专为支付宝蚂蚁森林设计的自动化能量收取工具,通过智能算法和模块化架构,帮…

作者头像 李华