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

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.mrgr.cn/news/82415.html

相关文章:

  • Ruby 中文编码
  • redis7基础篇3 redis的集群模式3
  • Windows系统安装Docker Desktop
  • cordova项目环境搭建 hello
  • Python3 正则表达式
  • 【虚拟机】VMware 16图文安装和配置 AlmaLinux OS 9.5 教程
  • mysql 事物隔离级别 与mvcc
  • 【go每日一题】golang异常、错误 {源码、实践、总结}
  • 数据挖掘——支持向量机分类器
  • 【sql】CAST(GROUP_CONCAT())实现一对多对象json输出
  • C 实现植物大战僵尸(二)
  • Elasticsearch: 高级搜索
  • UnityRenderStreaming使用记录(四)
  • 鸿蒙HarmonyOS开发:拨打电话、短信服务、网络搜索、蜂窝数据、SIM卡管理、observer订阅管理
  • 《计算机网络A》单选题-复习题库
  • 专题十四——BFS
  • 【开源社区openEuler实践】compass-ci
  • Vue2: table加载树形数据的踩坑记录
  • uni-app开发-习惯养成小程序/app介绍
  • HackMyVM-Adroit靶机的测试报告
  • springboot原生socket通讯教程
  • 【开源社区openEuler实践】A-Tune性能优化工具介绍
  • 【ACCSS】2024年亚信安全云认证专家题库
  • 高等数学学习笔记 ☞ 无穷小与无穷大
  • 【开源社区openEuler实践】rust_shyper
  • 2025元旦源码免费送