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

相关文章:

  • 实战设计模式之建造者模式
  • 活动预告 | Microsoft Azure 在线技术公开课:使用 Azure OpenAI 服务构建生成式应用
  • ubuntu安装firefox
  • 计算机网络原理(谢希仁第八版)第4章课后习题答案
  • RabbitMQ-基本使用
  • 从零开始学架构——互联网架构的演进
  • python +tkinter绘制彩虹和云朵
  • 重新整理机器学习和神经网络框架
  • TypyScript从入门到精通
  • 【MATLAB】绘制投资组合的有效前沿
  • matlab时频分析库
  • GBase 8s 数据库备份还原
  • C++模板相关概念汇总
  • MYSQL------sql基础
  • React Router 用法概览
  • 网络安全之高防IP的实时监控精准防护
  • 2024年中国新能源汽车用车发展怎么样 PaperGPT(二)
  • LINUXC 时间相关操作
  • 网络游戏之害
  • SpringMVC的消息转换器
  • Chrome 浏览器下载安装教程,保姆级教程
  • ElasticSearch系列(一)
  • C++技巧:map和vector
  • 中建海龙:科技助力福城南产业片区绿色建筑发展
  • 模块化通讯管理机在物联网系统中的应用
  • 建立一个Macos载入image的实例含界面
  • Redis List列表
  • 继承与多态 - 继承机制、虚函数、纯虚函数
  • 【QT】C++线程安全的单例模板
  • node.js内置模块之---EventEmitter 类