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

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 实例与三台服务器三主三从的实操部署,结合测试验证,完整呈现集群搭建全流程,为高可用部署提供可落地指南。

http://www.jsqmd.com/news/75991/

相关文章:

  • 常见Systemctl语句
  • Archivematica终极指南:快速掌握开源数字保存系统
  • 光学原理第七版深度解析:从基础到实践的全方位学习指南
  • 终极指南:用Python掌控Virtuoso的完整解决方案
  • Geodesy地理坐标计算库:JavaScript位置计算的终极指南
  • 芝麻粒-TK:蚂蚁森林自动化能量收取终极指南
  • 大规模语言模型的元认知能力评估与增强
  • VSCode SSHFS扩展:5步实现远程服务器文件无缝编辑
  • 3步掌握ghettoVCB:零成本构建企业级虚拟机备份方案
  • Venera漫画阅读器:从零开始的完整部署与配置手册
  • Movement 新公链机制解析:下一代区块链的创新与突破
  • 2025年深圳继承律师权威推荐榜单:股权分割/离婚房产/婚姻专业律师与律所精选 - 品牌推荐官
  • Wan2.2-T2V-A14B能否生成符合AR/VR播放需求的立体视频
  • 终极指南:快速精通Lean数学库mathlib的完整免费教程
  • Unity角色移动系统架构解析:构建《原神》级流畅体验的技术实现
  • Wan2.2-T2V-A14B生成视频的帧间抖动抑制算法解析
  • Wan2.2-T2V-A14B在航空航天科普视频中的精准建模能力
  • Unity塔防游戏开发终极指南:10个步骤打造专业级防御系统
  • 2025年质量好的超薄三节隐藏轨/阻尼三节隐藏轨优质厂家推荐榜单 - 行业平台推荐
  • Maputnik:开源地图样式编辑器的全方位解析
  • 5步打造专业纸质知识库:从在线文档到实体印刷的完整指南
  • TIA博途虚拟机文件完整使用指南
  • ArcObjects SDK 10.8终极指南:从入门到精通的227个实战案例解析
  • Tabby开源AI助手实战指南:从零到精通的完全攻略
  • 高效微调新选择:Llama-Factory集成QLoRA与多GPU分布式训练
  • YOLOv13改进:注意力魔改 | 新颖的卷积轴向注意力和谱空间注意力助力涨点,适用高分辨率场景,2025.12
  • 还在手动分析CT影像?AI Agent已实现秒级病灶识别,你跟上了吗?
  • GSE宏编译器终极指南:如何快速创建完美的魔兽世界技能序列
  • OpenVINO Notebooks 终极使用指南:从入门到精通AI推理
  • 14、文件操作、命令与内置命令详解