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

Redis搭建集群模式

Redis搭建集群模式

  • 一、集群模式原理
  • 二、搭建三主三从高可用集群
        • master1-6379配置文件
  • 三、创建Redis集群
  • 四、集群扩容
  • 五、集群缩容

一、集群模式原理

二、搭建三主三从高可用集群

在这里插入图片描述

准备 3 台服务器,每台部署两个 Redis 实例

dnf install -y gcc tcl gcc-c++ makewget https://download.redis.io/releases/redis-8.0.2.tar.gz[root@redis ~]# tar -xzf redis-8.0.2.tar.gz -C /opt
[root@redis ~]# cd /opt
[root@redis opt]# cd redis-8.0.2/
[root@redis redis-8.0.2]# make
master1-6379配置文件
[root@redis2 redis-8.0.1]# mkdir -p /opt/redis/{6379,6380}/{conf,data,logs,pid}
[root@redis2 redis-8.0.1]# cat > /opt/redis/6379/conf/redis_6379.conf <<EOF
> bind 0.0.0.0
> protected-mode no
> port 6379
> daemonize yes
> logfile /opt/redis/6379/logs/redis_6379.log
> pidfile /opt/redis/6379/pid/redis_6379.pid
> dbfilename "redis_6379.rdb"
> dir /opt/redis/6379/data
> cluster-enabled yes
> cluster-config-file node_6379.conf
> cluster-node-timeout 15000
> EOF
[root@redis2 redis-8.0.1]# vim redis.conf 
[root@redis2 redis-8.0.1]# 
[root@redis2 redis-8.0.1]# cd /opt/redis/
[root@redis2 redis]# ls
6379  6380  conf  data
[root@redis2 redis]# cd 6379
[root@redis2 6379]# ls
conf  data  logs  pid
[root@redis2 6379]# cd conf/
[root@redis2 conf]# ls
redis_6379.conf
[root@redis2 conf]# cat redis_6379.conf 
bind 0.0.0.0
protected-mode no
port 6379
daemonize yes
logfile /opt/redis/6379/logs/redis_6379.log
pidfile /opt/redis/6379/pid/redis_6379.pid
dbfilename "redis_6379.rdb"
dir /opt/redis/6379/data
cluster-enabled yes
cluster-config-file node_6379.conf
cluster-node-timeout 15000
[root@redis2 conf]# cp redis_6379.conf /opt/redis/6380/conf/redis_6380.conf
  • vim模式下更改啊6379为6380
    %s/6379/6380/g
[root@redis2 conf]# cat /opt/redis/6380/conf/redis_6380.conf 
bind 0.0.0.0
protected-mode no
port 6380
daemonize yes
logfile /opt/redis/6380/logs/redis_6380.log
pidfile /opt/redis/6380/pid/redis_6380.pid
dbfilename "redis_6380.rdb"
dir /opt/redis/6380/data
cluster-enabled yes
cluster-config-file node_6380.conf
cluster-node-timeout 15000

三、创建Redis集群

  • 创建集群模式
[root@redis1 opt]# redis-server /opt/redis/6379/conf/redis_6379.conf
[root@redis1 opt]# redis-server /opt/redis/6380/conf/redis_6380.conf
[root@redis1 opt]# ps -ef | grep redis*
root        6932       1  0 19:44 ?        00:00:00 redis-server 0.0.0.0:6379 [cluster]
root        6941       1  0 19:45 ?        00:00:00 redis-server 0.0.0.0:6380 [cluster]
root        6950    1789  0 19:45 pts/0    00:00:00 grep --color=auto redis
[root@redis1 opt]# redis-cli --cluster create \
192.168.98.162:6379 192.168.98.161:6379 192.168.98.149:6379 \
192.168.98.162:6380 192.168.98.161:6380 192.168.98.149:6380 \
--cluster-replicas 1
>>> Performing hash slots allocation on 6 nodes...
Master[0] -> Slots 0 - 5460
Master[1] -> Slots 5461 - 10922
Master[2] -> Slots 10923 - 16383
Adding replica 192.168.98.161:6380 to 192.168.98.162:6379
Adding replica 192.168.98.149:6380 to 192.168.98.161:6379
Adding replica 192.168.98.162:6380 to 192.168.98.149:6379
M: e104cf2177b20526ed1283a092c2801358b94260 192.168.98.162:6379slots:[0-5460] (5461 slots) master
M: d9b31a225fb87fda96c8c92c30df6c87c990e8d8 192.168.98.161:6379slots:[5461-10922] (5462 slots) master
M: 0bcee9b00b697ca0800d9596dcbd7fbd7f595281 192.168.98.149:6379slots:[10923-16383] (5461 slots) master
S: 757332977033f618caabcc5f36f7594b2760d11f 192.168.98.162:6380replicates 0bcee9b00b697ca0800d9596dcbd7fbd7f595281
S: 18dcbd8dcd138f3a5214e7db0d0f30a4a361e3da 192.168.98.161:6380replicates e104cf2177b20526ed1283a092c2801358b94260
S: ed9e5c3b58940294054b852cb3a872717d697157 192.168.98.149:6380replicates d9b31a225fb87fda96c8c92c30df6c87c990e8d8
Can I set the above configuration? (type 'yes' to accept): yes
>>> Nodes configuration updated
>>> Assign a different config epoch to each node
>>> Sending CLUSTER MEET messages to join the cluster
Waiting for the cluster to join
.
>>> Performing Cluster Check (using node 192.168.98.162:6379)
M: e104cf2177b20526ed1283a092c2801358b94260 192.168.98.162:6379slots:[0-5460] (5461 slots) master1 additional replica(s)
S: ed9e5c3b58940294054b852cb3a872717d697157 192.168.98.149:6380slots: (0 slots) slavereplicates d9b31a225fb87fda96c8c92c30df6c87c990e8d8
M: d9b31a225fb87fda96c8c92c30df6c87c990e8d8 192.168.98.161:6379slots:[5461-10922] (5462 slots) master1 additional replica(s)
S: 757332977033f618caabcc5f36f7594b2760d11f 192.168.98.162:6380slots: (0 slots) slavereplicates 0bcee9b00b697ca0800d9596dcbd7fbd7f595281
M: 0bcee9b00b697ca0800d9596dcbd7fbd7f595281 192.168.98.149:6379slots:[10923-16383] (5461 slots) master1 additional replica(s)
S: 18dcbd8dcd138f3a5214e7db0d0f30a4a361e3da 192.168.98.161:6380slots: (0 slots) slavereplicates e104cf2177b20526ed1283a092c2801358b94260
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.



四、集群扩容




五、集群缩容




















http://www.dtcms.com/a/264597.html

相关文章:

  • 【WEB】Polar靶场 笔记
  • C++主流编辑器特点比较
  • 【HDMI CEC Menu Tunneling (菜单穿越) 功能详解
  • Stereolabs ZED系列与ZED X立体相机系列对比:如何根据项目需求选择?
  • AI大模型如何重塑软件开发流程?从自动化革命到人机共生范式
  • 小架构step系列01:小架构初衷
  • SQLMesh中的SQL模型:从基础定义到高级应用
  • 【网工|知识升华版|实验】1 登录华为设备并配置
  • 【Maven】Maven深度避坑指南:依赖冲突全维度解决方案与工业级实战(超万字解析)
  • 移动conda虚拟环境的安装目录
  • 超低功耗语音芯片有哪些?
  • 构建下一代云原生大模型多租户平台:架构设计与关键挑战
  • Django全栈开发:架构解析与性能优化实战
  • AWS CloudFormation部署双可用区VPC网络架构 - 完整指南
  • Chrome 下载文件时总是提示“已阻止不安全的下载”的解决方案
  • 力扣 hot100 Day32
  • 鸿蒙UI框架深度解析:对比Android/iOS的布局适配与组件设计
  • ElementUI 表格el-table自适应高度随浏览器窗口变化
  • 量子算法:微算法科技用于定位未知哈希图的量子算法,网络安全中的哈希映射突破
  • 在设计提示词(Prompt)时,关于信息位置的安排z怎么 结合模型特性和任务目标
  • 容器基础5-Helm 与 K8s 的关系
  • Lua 安装使用教程
  • 第二章AIGC入门:打开人工智能生成内容的新世界大门(3/36)
  • 不会用PS?,有一键图片处理工具
  • Crossbar结构的排队策略
  • 【深度学习-Day 34】CNN实战:从零构建CIFAR-10图像分类器(PyTorch)
  • Linux下MinIO单节点安装部署
  • 【趣谈】Android多用户导致的UserID、UID、shareUserId、UserHandle术语混乱讨论
  • Ubuntu主机FFmpeg推流+云服务器Django+WebSocket接收+Web显示
  • 【RTSP从零实践】6、实现最简单的同时传输H264、AAC的RTSP服务器