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

Redis学习第二篇

一、Redis 集群方案

1.哨兵模式

Snipaste_2026-06-01_16-50-52

客户端先访问哨兵获取主节点信息,再访问主节点。

如果master 节点异常,则会做主从切换,将某一台slave作为master,哨兵的配置稍微复杂,并且性能和高可用等各方面表现一般,特别是在主从切换的瞬间存在访问瞬断的情况,而且哨兵模式只有一个主节点对外提供服务,没发支持很高的并发,且单个主节点内存也不宜设置得过大,否则会导致持久化文件过大,影响数据恢复或主从同步效率。

2.集群模式

Snipaste_2026-06-01_17-20-08

redis 集群是由多个主从节点群组成的分布式服务器群,它具有复制、高可用和分片特性。Redis 集群不需要 sentinel 哨兵也能完成节点移除和故障转移的功能。需要将每个节点设置成集群模式,这种集群模式没有中心节点,可水平扩展,官方文档称可以线性扩展到上万节点(官方不推荐超过1000个节点)。redis集群的性能和高可用均优于之前版本的哨兵模式,且集群配置非常简单。

二、Redis集群实例搭建

redis集群中每台节点都安装全新的redis

redis 集群需要至少三个master 节点,先搭建三个master 节点,再搭建slave节点,总共6个redis 节点,这里用三台机器部署6个实例,每台机器一主一从。

1.创建redis-cluster目录

第一步在第一台机器的/usr/local创建文件夹redis-cluster,然后在其下面分别创建2个文件夹

mkdir -p /usr/local/redis-cluster
cd /usr/local/redis-cluster
# 其它两台机器使用8002、8003
mkdir 8001
# 其它两台机器使用8005、8006
mkdir 8004
机器 master slave
机器A 8001 8004
机器B 8002 8005
机器C 8003 8006

2.修改配置文件

将redis.conf配置文件copy到8001下,修改内容:

# 1.开启后台启动
daemonize yes
# 2.分别对每个机器的端口号进行设置
port 8001
# 3.指定数据文件存放位置,必须要指定不同的目录位置,不然会丢失数据
dir /usr/local/redis-cluster/8001
# 4.启动集群模式
cluster-enabled yes
# 5.集群节点信息文件,这里800x最好和port对应上
cluster-config-file nodes-8001.conf
# 6.设置节点超时时间
cluster-node-timeout 5000
# 7.关闭bind绑定访问ip信息,任何机器都可以访问这台机器
# bind 127.0.0.1
# 8.关闭保护模式
protected-mode no
# 9.开启aof 持久化
appendonly  yes
# 10.设置redis访问密码(如果需要)
requirepass jihuakai
# 11.设置集群节点间访问密码(如果需要)
masterauth jihuakai

3.修改其它节点配置文件

把修改后的配置文件,copy到8002,修改第2、3、5项中的端口号

:%s/源字符串/目标字符串/g

4.修改其它机器的配置文件

另外两台机器也做上面几个步骤,机器B用8002、8005,机器C用8003、8006

5.分别启动6个redis实例,然后检查是否启动成功

# 启动8001
redis-server /usr/local/redis-cluster/8001/redis.conf
# 查看是否启动成功
ps -ef | grep redis# 启动8004
redis-server /usr/local/redis-cluster/8001/redis.conf
# 查看是否启动成功
ps -ef | grep redis

6.创建整个redis集群

# 代表为每个创建的主服务器节点创建一个从服务器节点
# replicas 1 复制因子一主一从,伪集群前面的节点作为主节点,后面的为从节点,实际上主从节点不会在一台机器上
redis-cli -a jihuakai --cluster create --cluster-replicas 1 192.168.0.11:8001 192.168.0.12:8002 192.168.0.13:8003 192.168.0.11:8004 192.168.0.12:8005 192.168.0.13:8006

启动成功后,确认分片计划。将多个主节点分为多个slot槽

7.验证集群

# 1.连接任意一个服务端:./redis-cli -c -h -p (-a 访问服务端密码,-c表示集群模式,指定ip地址和端口号)
./redis-cli -a jihuakai -c -h 192.168.0.11 -p 8001
# 2.进入集群后,查看集群信息
cluster info
# 3.进入集群后,查看节点列表
cluster nodes
# 4.进行数据操作验证
set key value
get key
# 5.关闭集群需要逐个关闭
./redis-cli -a jihuakai -c -h 192.168.0.11 -p 8001 shutdown

三、Redis集群原理分析

Redis Cluster 将所有数据划分为 16384 的slots(槽位),每个节点负责其中一部分槽位。槽位的信息存储于每个节点中。

当 Redis Cluster 的客户端来连接集群时,它也会得到一份集群的槽位配置信息并将其缓存在客户端本地。服务端会存一份槽位信息 node-8001.config。服务器的槽位信息可能和客户端的槽位信息存在不一致的情况,还需要纠正机制来实现槽位信息的校验调整。

1.槽位定位算法

Cluster 默认会对 key 值使用 crc 16 算法进行hash 得到一个整数值,然后用这个整数值对 16384 进行取模来得到具体槽位。

HASH_SLOT = CRC16(key) mod 16384

2.跳转重定向

当客户端向一个节点发出了指令,如果节点发现key所对应的槽位并不归自己管理。节点会向客户端发送一个特殊跳转指令同时指名对应槽位所在对的机器ip端口号,告诉客户端去连这个节点获取数据。客户端收到指令后除了会跳转到正确的节点上去操作,还会同步纠正本地的槽位映射表缓存。

3.网络抖动

网络抖动是非常常见的的现象,部分连接之间可能变得异常,过几秒就好了。为了解决这种问题,Redis Cluster 提供了 cluster-node-timeout,表示当前某个节点持续 timeout 的时间失联时,才认定节点出现故障,才需要主从切换。如果没有这个选项,网络抖动会导致主从频繁切换(数据的重新复制)。

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

相关文章:

  • MobileNetV3配置优化指南:如何调整YAML参数获得最佳训练效果
  • Git小白入门教程
  • KMS_VL_ALL_AIO:企业级批量许可激活解决方案的技术架构与实践指南
  • 传统合作必须强强联合,编写强弱互补合作匹配程序,差异化组队,打破强者抱团固有思维。
  • 2026防城港卫生间免砸砖防水、外墙、地下室、楼顶渗漏+彩钢瓦、阳光房漏水 本地专业防水公司TOP5权威推荐(2026年6月本地最新深度调研) - 企业资讯
  • Win11Debloat:Windows系统终极优化工具,让你的电脑焕然一新
  • 量子优化算法QAOA在图分解中的创新应用与性能分析
  • 大鼠外周血中性粒细胞(PBNC)的分离鉴定protocol 云克隆来助力
  • AI英语口语APP定制开发方案
  • 2026深圳卫生间免砸砖防水、外墙、地下室、楼顶渗漏+彩钢瓦、阳光房漏水 本地专业防水公司TOP5权威推荐(2026年6月本地最新深度调研) - 企业资讯
  • 2026揭阳卫生间免砸砖防水、外墙、地下室、楼顶渗漏+彩钢瓦、阳光房漏水 本地专业防水公司TOP5权威推荐(2026年6月本地最新深度调研) - 企业资讯
  • 传统整理必须分类规整,编写随性生活整理程序,按照使用习惯整理,拒绝刻板分类收纳。
  • 【字节跳动】「第四章」乌兰察布智算中心台账·全网最详细·
  • 英雄联盟Akari助手:如何用这个开源工具包提升你的游戏体验
  • 深度学习模型半结构化稀疏与后门攻击防御
  • 东莞除甲醛公司哪家专业?认准东莞佰家环保科技,技术硬核,口碑过硬,售后无忧 - 专注室内空气检测治理
  • 不见不散亮相第22届广州国际乐器展,融合创新乐器读谱弹唱+视频KTV一体化体验
  • 别再手动搓老系统了:微软 Copilot Studio 的 Computer Use 到底有多能打
  • 从A2L文件到数据采集:深入理解XCP协议中DAQ命令配置与优化技巧
  • 2026宜昌卫生间免砸砖防水、外墙、地下室、楼顶渗漏+彩钢瓦、阳光房漏水 本地专业防水公司TOP5权威推荐(2026年6月本地最新深度调研) - 企业资讯
  • OmenSuperHub:开源惠普OMEN笔记本性能控制终极方案,彻底释放硬件潜力
  • 2026珠海卫生间免砸砖防水、外墙、地下室、楼顶渗漏+彩钢瓦、阳光房漏水 本地专业防水公司TOP5权威推荐(2026年6月本地最新深度调研) - 企业资讯
  • 2026树洞平台全榜单:隐私安全、陪伴质量、价格透明度三重测评 - 时时资讯
  • 收藏!普通人也能抓住的AI红利:2026年入局还来得及吗?
  • 如何为多路ADC选择低偏斜时钟缓冲器?CDCLVC1102PWR的<50ps输出偏斜方案解析
  • 2026南宁卫生间免砸砖防水、外墙、地下室、楼顶渗漏+彩钢瓦、阳光房漏水 本地专业防水公司TOP5权威推荐(2026年6月本地最新深度调研) - 企业资讯
  • Vivado里AXI总线互联,SmartConnect和InterConnect到底啥时候必须用?一个工程实例说清楚
  • Windows 10/11系统下ArcGIS 10.4完整安装与汉化保姆级教程(含许可服务启动失败等常见问题解决)
  • Curator 如何判断技能「有用」与「该淘汰」?小白程序员必看!
  • Illustrator脚本效率革命:5分钟掌握智能批量替换技术