news 2026/4/21 16:03: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/4/16 12:44:59

终极指南:用Python掌控Virtuoso的完整解决方案

终极指南:用Python掌控Virtuoso的完整解决方案 【免费下载链接】skillbridge A seamless python to Cadence Virtuoso Skill interface 项目地址: https://gitcode.com/gh_mirrors/sk/skillbridge 想要将Python的强大功能与Cadence Virtuoso的专业设计工具完…

作者头像 李华
网站建设 2026/4/20 20:47:21

Screenbox媒体播放器:解锁Windows平台免费视频播放新体验

Screenbox媒体播放器:解锁Windows平台免费视频播放新体验 【免费下载链接】Screenbox LibVLC-based media player for the Universal Windows Platform 项目地址: https://gitcode.com/gh_mirrors/sc/Screenbox 还在为Windows平台找不到好用的免费媒体播放器…

作者头像 李华
网站建设 2026/4/20 4:23:57

waifu-diffusion终极部署指南:从零开始打造专属AI绘画助手

waifu-diffusion终极部署指南:从零开始打造专属AI绘画助手 【免费下载链接】waifu-diffusion 项目地址: https://ai.gitcode.com/hf_mirrors/hakurei/waifu-diffusion 想要在本地电脑上运行强大的AI绘画模型吗?waifu-diffusion作为当前最受欢迎的…

作者头像 李华
网站建设 2026/4/15 17:54:29

Venera漫画阅读器:从零开始的完整部署与配置手册

Venera漫画阅读器:从零开始的完整部署与配置手册 【免费下载链接】venera A comic app 项目地址: https://gitcode.com/gh_mirrors/ve/venera Venera是一款功能全面的跨平台漫画阅读应用,专为漫画爱好者设计,提供本地和在线漫画资源的…

作者头像 李华
网站建设 2026/4/21 4:36:44

Wan2.2-T2V-A14B生成视频版权归属问题法律探讨

Wan2.2-T2V-A14B生成视频版权归属问题法律探讨 在影视广告制作周期动辄数周、人力成本居高不下的今天,一条8秒的清新风格短视频能否在30秒内自动生成?当AI开始接管从脚本到成片的关键环节,我们不得不面对一个前所未有的现实:内容的…

作者头像 李华
网站建设 2026/4/15 15:39:43

教育科技公司转型AI:借助Llama-Factory快速构建智能题库

教育科技公司转型AI:借助Llama-Factory快速构建智能题库 在教育内容生产仍普遍依赖人工编写题库的今天,一家区域性教辅企业正面临典型的发展瓶颈:每年更新数千道数学题,需要数十名教研员反复打磨,耗时数月,…

作者头像 李华