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

Linux下部署Redis集群 - 一主二从三哨兵模式

三台服务器redis一主二从三哨兵模式搭建

最近使用到了redis集群部署,使用一主二从三哨兵集群部署redis,将自己部署的过程中的使用心得分享给大家,希望大家以后部署的过程减少一些坑。

服务器准备

3台服务器 ,确定主redis和从redis。

182.168.40.142 (master节点)
182.168.40.141 (slave1节点)
182.168.40.140 (slave2节点)

服务器分别需要开通6379、6380、638126379、26380、26381端口或者关闭防火墙

一、 部署redis(基础部署,主从部署先要完成基础部署,该部分操作需要在所有节点执行)

1.下载

wget http://download.redis.io/releases/redis-6.2.6.tar.gz

2. 解压

tar -zxvf redis-6.2.6.tar.gz

mv redis-6.2.6 /usr/local/

3.编译

进入目录命令 cd /usr/local/redis-6.2.6
编译命令 make

4. 安装

进入src命令 cd /usr/local/redis-6.2.6/src/
安装命令 make install

5. 重点:
5.1 新建 bin 和 etc 文件夹

进入目录命令 : cd /usr/local/redis-6.2.6/
创建etc文件夹: mkdir etc
创建bin文件夹: mkdir bin
创建logs文件夹: mkdir logs

5.2 装载配置文件在etc

复制文件命令 cp redis.conf /usr/local/redis-6.2.6/etc

5.3 在bin下装载如下文件

将mkreleasehdr.sh、redis-benchmark、redis-check-aof、redis-check-rdb、redis-cli、redis-server、redis-sentinel文件复制到 bin 文件夹

cd src/
cp mkreleasehdr.sh redis-benchmark redis-check-aof redis-check-rdb redis-cli redis-server redis-sentinel /usr/local/redis-6.2.6/bin/

5.4 改下redis.conf配置

修改后的配置如下

bind:0.0.0.0
protected-mode:no
daemonize:yes
requirepass:123456(密码自己设置)
logfile "/usr/local/redis-6.2.6/logs/redis-6379.log"
dbfilename dump-6379.rdb

5.5 启动redis命令

切换到bin目录,使用下面命令启动redis

cd /usr/local/redis-6.2.6/bin
./redis-server /usr/local/redis-6.2.6/etc/redis.conf

5.6 客户端关闭命令:

方式一:redis-cli -p 端口号shutdown
方式二:首先ps -ef | grep redis 获取进程号 然后kill -9 进程号

二、redis主从配置

2.1 主机redis配置文件

bind : 0.0.0.0 表示允许所有远程访问
port:端口号 (默认就好)
protected-mode:no (关闭保护模式,可以外部访问)
daemonize:yes (设置为后台启动)
pidfile /var/run/redis_6379.pid
logfile “/usr/local/redis-6.2.6/logs/redis_6379.log”
dbfilename dump_6378.rdb
requirepass: redis的连接密码
masterauth: slave 服务连接 master 的密码(跟redis密码一致)

修改配置文件后需要重启redis

2.2 从redis配置文件

bind : 0.0.0.0 表示允许所有远程访问
port:6380
protected-mode:no (关闭保护模式,可以外部访问)
daemonize:yes (设置为后台启动)
pidfile /var/run/redis_6380.pid
logfile “/usr/local/redis-6.2.6/logs/redis_6380.log”
dbfilename dump_6380.rdb
requirepass: redis的连接密码
replicaof: 主redis服务器ip 主redis端口(配置为master的从)
masterauth: slave 服务连接 master 的密码(跟redis密码一致)

修改配置文件后需要重启redis

==================================================

bind : 0.0.0.0 表示允许所有远程访问
port:6381
protected-mode:no (关闭保护模式,可以外部访问)
daemonize:yes (设置为后台启动)
pidfile /var/run/redis_6381.pid
logfile “/usr/local/redis-6.2.6/logs/redis_6381.log”
dbfilename dump_6381.rdb
requirepass: redis的连接密码
replicaof: 主redis服务器ip 主redis端口(配置为master的从)
masterauth: slave 服务连接 master 的密码(跟redis密码一致)

修改配置文件后需要重启redis

2.3 主从测试

1.切换目录

cd /usr/local/redis-6.2.6/bin/

2.连接客户端

./redis-cli -h ip地址 -p端口号

3.密码校验

auth redis密码

4.主从配置信息

info replication

有如下信息代表主从是ok的

在这里插入图片描述
Role:代表当前服务器的角色 master代表主redis,slave代表从redis
connected_slaves 后面的数字代表从redis的数量
slave:代表从redis的地址,端口等信息

在 master 上添加数据,看 slave 上是否会同步数据

三、哨兵配置

3.1 主机sentinel配置文件

port 26379
daemonize yes(后台启动)
sentinel monitor mymaster 192.169.40.142 6379 2(主redis的ip 主redis的port 从节点个数)
sentinel auth-pass mymaster 123456(redis的密码)
pidfile "/var/run/redis-sentinel_26379.pid"
logfile "/usr/local/redis-6.2.6/logs/sentinel_26379.log"

3.2 从机sentinel配置文件

port 26380
daemonize yes(后台启动)
sentinel monitor mymaster 192.169.40.142 6379 2(主redis的ip 主redis的port 从节点个数)
sentinel auth-pass mymaster 123456(redis的密码)
pidfile "/var/run/redis-sentinel_26380.pid"
logfile "/usr/local/redis-6.2.6/logs/sentinel_26380.log"

==================================================

port 26381
daemonize yes(后台启动)
sentinel monitor mymaster 192.169.40.142 6379 2(主redis的ip 主redis的port 从节点个数)
sentinel auth-pass mymaster 123456(redis的密码)
pidfile "/var/run/redis-sentinel_26381.pid"
logfile "/usr/local/redis-6.2.6/logs/sentinel_26381.log"

3.3 验证哨兵模式
1.分别在三台机器上,进入 redis 解压目录,依次执行

cd /usr/local/bin/
./redis-sentinel /usr/local/etc/sentinel.conf

2. 连接任意 sentinel 节点

cd /usr/local/redis-6.2.6/bin
./redis-cli -h ip -p port
如: ./redis-cli -h 192.168.40.142 -p 26379

3. redis 命令行上,执行 info sentinel 命令

验证 sentinel 状态为ok就是正确的,有如下类似信息,则配置完成

在这里插入图片描述
4. 测试哨兵模式

停止主服务器6379,测试主服务器的重新选举,会另外选一个从服务器作为主服务器
重新启动6379,不会把6379切换成主服务器,而是作为了从服务器

http://www.kler.cn/a/466531.html

相关文章:

  • JavaScript系列(8)-- Array高级操作
  • NLP CH10 问答系统复习
  • 利用webworker解决性能瓶颈案例
  • 实时高保真人脸编辑方法PersonaMagic,可根据肖像无缝生成新角色、风格或场景图像。
  • PDF文件提示-文档无法打印-的解决办法
  • 2025-01-04 Unity插件 YodaSheet1 —— 插件介绍
  • 计算机网络•自顶向下方法:链路层编址、ARP协议、以太网
  • U盘格式化工具合集:6个免费的U盘格式化工具
  • 【记录】Angr|Angr 标准库函数替换怎么看哪些库函数被Angr支持?
  • Couchbase是不是MPP数据库
  • 学生管理系统springboot+论文源码调试讲解
  • 【Seed-Labs 2.0】Cross-Site Scripting (XSS) Attack Lab (Web Application: Elgg)
  • Python:爬虫基础《爬取红楼梦》
  • Redis Hash哈希
  • 使用Clion在ubuntu上进行交叉编译,并在Linux上远程编译五子棋
  • ABAQUS三维Voronoi晶体几何建模
  • 多台DHCP服务器时的问题讨论
  • Windmill 实战:快速构建自动化工作流和用户界面
  • Windows安装了pnpm后无法在Vscode中使用
  • AWS S3文件存储工具类
  • PyTorch AMP 混合精度中grad_scaler.py的scale函数解析
  • 使用函数求e的近似值(PTA)C语言
  • 【硬件测试】基于FPGA的2FSK+帧同步系统开发与硬件片内测试,包含高斯信道,误码统计,可设置SNR
  • 阻抗(Impedance)、容抗(Capacitive Reactance)、感抗(Inductive Reactance)
  • 【Docker】:Docker容器使用
  • 野火直播 5.9.5 | 频道丰富的电视直播软件,支持港澳台频道和快速换台