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

2025年最新Linux的Redis主从集群搭建

一:概述

        Redis(Remote Dictionary Server)是一个开源的、高性能的键值存储系统,通常被用作数据库、缓存或消息中间件。它以内存存储为主,支持多种数据结构,并具备持久化、高可用、分布式等特性,广泛应用于互联网、游戏、金融等场景。在开发应用时我们经常使用的是单节点的Redis,但是在实际企业应用中,为了提高Redis的并发性能,就需要搭建Redis主从集群。下面我就来简单的说明一下利用Docker搭建一个简单的主从集群。

二:Redis主从集群的搭建(前置的Docker默认已经安装完)

        <1>利用Docker拉取最新的Redis镜像

docker pull redis

默认拉取的是最新的Redis镜像版本。

        <2>在你经常安装应用的目录中新建文件夹redis

mkdir redis

       <3>在该目录中新建一个compose的文件

touch docker-compose.yaml

        <3>编辑上述创建的文件,并添加如下的内容

vim docker-compose.yaml
version: "3.2"services:r1:image: redis # 镜像文件container_name: r1 # 容器名称network_mode: "host" # 主机模式entrypoint: ["redis-server", "--port", "7001"] # Redis服务运行端口号r2:image: rediscontainer_name: r2network_mode: "host"entrypoint: ["redis-server", "--port", "7002"]r3:image: rediscontainer_name: r3network_mode: "host"entrypoint: ["redis-server", "--port", "7003"]

        <4>在当前目录下运行以下的命令

docker-compose up -d

出现这种就说明已经部署了基本的Redis多实例节点成功了。

        <5>建立集群

        上述虽然搭建了3个Redis的实例,但是并没有形成主从关系,需要通过以下的命令来配置主从关系。

# Redis5.0以前
slaveof <masterip> <masterport>
# Redis5.0以后
replicaof <masterip> <masterport>

        这里用临时模式测试,首先连接r2,让其以r1为主节点

# 连接r2
docker exec -it r2 redis-cli -p 7002
# 认r1主,也就是7001
slaveof host(主机ip地址) 7001

然后连接r3,让其以r1为master

# 连接r2
docker exec -it r3 redis-cli -p 7002
# 认r1主,也就是7001
slaveof host(主机ip地址) 7001

然后连接r1,查看集群状态:

# 连接r1
docker exec -it r1 redis-cli -p 7001
# 查看集群状态
info replication

        会看到如下的信息:

# Replication
role:master
connected_slaves:2
slave0:ip=host,port=7002,state=online,offset=154,lag=1
slave1:ip=host,port=7003,state=online,offset=154,lag=0
master_failover_state:no-failover
master_replid:6fac952687625ccf5697afb2770f3254f545f12c
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:154
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:154

可以看到它扮演的角色是主节点。

三:测试主从集群效果

        分别在集群中执行一系列的读写操作,然后查看效果

root@1:/usr/local/soft/redis# docker exec -it r1 redis-cli -p 7001
127.0.0.1:7001> set string 五一劳动节
OK
127.0.0.1:7001> set num 501
OK
127.0.0.1:7001> get num
"501"
127.0.0.1:7001> get string
"\xe4\xba\x94\xe4\xb8\x80\xe5\x8a\xb3\xe5\x8a\xa8\xe8\x8a\x82"
127.0.0.1:7001> exit
root@1:/usr/local/soft/redis# docker exec -it r2 redis-cli -p 7002
127.0.0.1:7002> set num 1234
(error) READONLY You can't write against a read only replica.
127.0.0.1:7002> get num
"501"
127.0.0.1:7002> get string
"\xe4\xba\x94\xe4\xb8\x80\xe5\x8a\xb3\xe5\x8a\xa8\xe8\x8a\x82"

 从这里发现主节点可以进行读写操作,而从节点只可以读取不能写入。至此为止,这个主从集群搭建就完毕了。

相关文章:

  • [C++] 小游戏 决战苍穹
  • 深度学习系统学习系列【4】之反向传播(BP)四个基本公式推导
  • 12. 多线程(9) --- 案例:定时器
  • DeepWiki 是什么,怎么使用
  • SIFT算法详细原理与应用
  • 力扣第448场周赛
  • Android学习总结之GetX库篇(场景运用)
  • 蓝桥杯单片机备战笔记
  • Easy云盘总结篇-回收站
  • 常见的位置编码 Positional Encoding
  • 1. std::result_of是什么?为什么它出现?
  • c++存储持续性和链接性
  • Netty的内存池机制怎样设计的?
  • Webug4.0靶场通关笔记15- 第19关文件上传(畸形文件)
  • 服务器端的准备工作
  • 求解器介绍之gurobi
  • Linux电源管理(6)_Generic PM之挂起功能
  • 【自然语言处理与大模型】LlamaIndex的数据连接器和对话引擎
  • 二、Python变量基础(2)
  • 30天开发操作系统 第27天 -- LDT与库
  • 建立营销网络/搜索引擎优化结果
  • 网站建设先航科技/东莞百度推广优化
  • 上海市城市建设管理局网站/推广网页
  • 深圳租房建设局网站首页/百度人工服务24小时
  • 网站建设专家/百度指数移动版app
  • redis做缓存的网站并发数/广告投放的方式有哪些