当前位置: 首页 > 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.gsyq.cn/news/1443229.html

相关文章:

  • MobileNetV3配置优化指南:如何调整YAML参数获得最佳训练效果
  • KMS_VL_ALL_AIO:企业级批量许可激活解决方案的技术架构与实践指南
  • Win11Debloat:Windows系统终极优化工具,让你的电脑焕然一新
  • AI英语口语APP定制开发方案
  • 传统整理必须分类规整,编写随性生活整理程序,按照使用习惯整理,拒绝刻板分类收纳。
  • 从A2L文件到数据采集:深入理解XCP协议中DAQ命令配置与优化技巧
  • 2026树洞平台全榜单:隐私安全、陪伴质量、价格透明度三重测评 - 时时资讯
  • 【Vue知识点总结】Watch(监听器)
  • 深度解析Sunshine开源游戏串流架构:构建高性能自托管游戏云的技术实现
  • 2026汕头卫生间免砸砖防水、外墙、地下室、楼顶渗漏+彩钢瓦、阳光房漏水 本地专业防水公司TOP5权威推荐(2026年6月本地最新深度调研) - 企业资讯
  • 04|精准测试平台的数据存储:MySQL、Redis、Elasticsearch 怎么分工?
  • Promise 与 Async Await 深度解析
  • Chinese-LLaMA-2-7B与原始Llama-2对比:中文理解能力提升分析
  • 逆势承压!2026汽车活塞市场分析:行业发展趋势与未来前景预判
  • 2026 时尚家庭选购四件套5大宝藏家纺品牌完整盘点 - qiqi1113
  • 2026青岛卫生间免砸砖防水、外墙、地下室、楼顶渗漏+彩钢瓦、阳光房漏水 本地专业防水公司TOP5权威推荐(2026年6月本地最新深度调研) - 企业资讯
  • Sora 2珠宝展示不卡顿?揭秘底层NeRF-Transformer混合架构与实时LOD调度机制
  • 抖音下载器终极指南:三步实现无水印视频批量下载,免费构建你的内容收藏库
  • 2026淄博卫生间免砸砖防水、外墙、地下室、楼顶渗漏+彩钢瓦、阳光房漏水 本地专业防水公司TOP5权威推荐(2026年6月本地最新深度调研) - 企业资讯
  • ncmdump完全解密指南:3分钟破解网易云音乐格式限制,实现音频自由播放
  • SmolLM2-360M-Instruct-openmind实战案例:文本摘要与改写应用
  • 在Fedora/CentOS Stream上,用QEMU+KVM给国产麒麟V10 SP1 arm64系统开个虚拟机(保姆级命令详解)
  • 发电机机械转速开关JSX-584
  • 华为一口气发布nova 16系列、MatePad Pro Max等多款重磅新品
  • Video2X:用AI魔法让老旧视频重获新生的完整教程
  • Qwen2.5-14B-Instruct-8bit进阶技巧:提示工程优化与模型输出质量控制方法
  • 如何永久保存微信聊天记录:WeChatMsg终极数据留痕解决方案
  • AI 眼镜热闹背后存隐忧:功能虽多,用户痛点待解,品类成熟需先“克制”
  • CANN/ops-blas Sdot算子实现
  • roberta-base-go-emotions:革命性28维情感AI模型,让机器读懂人类情感