Redis主从部署

文章目录

  • Redis主从部署
    • 1.下载安装Redis
    • 2.单点双副本主从配置
      • 1.修改配置信息
      • 2.修改配置文件redis.conf
      • 3.拷贝配置文件到每一个实例文件夹里
      • 4.修改每一个实例的端口和工作目录
      • 5.配置主从关系
      • 6.检查效果
    • 3.哨兵模式监控主从
      • 1.创建实例目录
      • 2.复制配置文件并进行修改
      • 3.启动并测试
    • 4.搭建集群
      • 1.准备工作
      • 2.启动集群
      • 3.检查效果

Redis主从部署

1.下载安装Redis

安装依赖

yum -y install wget gcc gcc-c++ make

下载 redis,下载地址

wget https://download.redis.io/redis-stable.tar.gz

安装

[root@redis1 ~]# mkdir /usr/local/redis
[root@redis1 ~]# tar xf redis-stable.tar.gz -C /usr/local/redis/
[root@redis1 ~]# cd /usr/local/redis/redis-stable/
[root@redis1 redis-stable]# make && make install

没报错就是安装成功了

2.单点双副本主从配置

包含一个主节点一个从节点

ip端口角色
192.168.37.946379master
192.168.37.946380slave

1.修改配置信息

创建两个目录给各个节点使用

[root@redis1 redis-stable]# cd /usr/local/redis/
[root@redis1 redis]# mkdir 6379 6380
[root@redis1 redis]# ls
6379  6380  redis-stable

2.修改配置文件redis.conf

# redis实例的声明 IP
replica-announce-ip 192.168.37.94
# 开启RDB
# save ""
save 3600 1
save 300 100
save 60 10000# 关闭AOF
appendonly no# 绑定地址,默认是127.0.0.1,会导致只能在本地访问。修改为0.0.0.0则可以在任意IP访问
bind 0.0.0.0
# 保护模式,关闭保护模式
protected-mode no
# 数据库数量,设置为1
databases 1

3.拷贝配置文件到每一个实例文件夹里

[root@redis1 redis-stable]# cp redis.conf /usr/local/redis/6379/
[root@redis1 redis-stable]# cp redis.conf /usr/local/redis/6380/

4.修改每一个实例的端口和工作目录

port 6379    #修改成对应端口
dir /usr/local/redis/6379/   #修改成配置文件目录

5.配置主从关系

在从节点的配置文件里添加这一配置
slaveof <masterip> <masterport>

6.检查效果

连接主库
[root@redis1 ~]# redis-cli -p 6379
127.0.0.1:6379> info replication
# Replication
role:master    #这里已经显示master节点
connected_slaves:1
slave0:ip=192.168.37.94,port=6380,state=online,offset=112,lag=1
master_failover_state:no-failover
master_replid:ec57c6ee234cca8fd8ca9b2be04865f4b1f37f11
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:112
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:112
127.0.0.1:6379> exit连接从库
[root@redis1 ~]# redis-cli -p 6380
127.0.0.1:6380> info replication
# Replication
role:slave     #这里显示slave节点
master_host:192.168.37.94
master_port:6379
master_link_status:up
master_last_io_seconds_ago:9
master_sync_in_progress:0
slave_read_repl_offset:126
slave_repl_offset:126
slave_priority:100
slave_read_only:1
replica_announced:1
connected_slaves:0
master_failover_state:no-failover
master_replid:ec57c6ee234cca8fd8ca9b2be04865f4b1f37f11
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:126
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:15
repl_backlog_histlen:112
127.0.0.1:6380> exit

3.哨兵模式监控主从

要先搭建好主从架构

我们现在搭建一个两节点形成的Sentinel集群,来监控之前搭建的主从架构

ip端口节点名称
192.168.37.947379s1
192.168.37.947380s2

1.创建实例目录

[root@redis1 ~]# mkdir /usr/local/redis/s1 /usr/local/redis/s2
[root@redis1 ~]# cd /usr/local/redis/
[root@redis1 redis]# ll
total 4
drwxr-xr-x. 2 root root   40 Jul  8 10:09 6379
drwxr-xr-x. 2 root root   40 Jul  8 10:10 6380
drwxrwxr-x. 8 1000 1000 4096 Jul  8 09:41 redis-stable
drwxr-xr-x. 2 root root    6 Jul  8 10:23 s1
drwxr-xr-x. 2 root root    6 Jul  8 10:23 s2

2.复制配置文件并进行修改

[root@redis1 redis-stable]# cp sentinel.conf ../s1/
[root@redis1 redis-stable]# cp sentinel.conf ../s2
[root@redis1 redis-stable]# cd ..
[root@redis1 redis]# ls
6379  6380  redis-stable  s1  s2
[root@redis1 redis]# cd s1/
[root@redis1 s1]# vim sentinel.conf 
[root@redis1 s1]# cd ../s2
[root@redis1 s2]# vim sentinel.confport 7379    #对应端口
sentinel announce-ip "192.168.37.94"  #连接ip
sentinel monitor mymaster 192.168.37.94 6379 1  #主节点ip和端口和从节点数量
sentinel down-after-milliseconds mymaster 5000
sentinel failover-timeout mymaster 60000
dir "/usr/local/redis/s1"

port 7379:是当前sentinel实例的端口

sentinel announce-ip:当前实例的IP

sentinel monitor mymaster 192.168.37.94 6379 1:指定主节点信息

mymaster:主节点名称,自定义,任意写
192.168.37.94 6379:主节点的ip和端口
1:选举master时的quorum值,低于某个值则集群会停止服务。
dir:日志存储的路径

3.启动并测试

[root@redis1 redis]# redis-sentinel s2/sentinel.conf
[root@redis1 redis]# redis-sentinel s1/sentinel.conf

我们尝试让6379宕机

在这里插入图片描述

从节点报错几次之后就会被切换成主节点

在这里插入图片描述

哨兵节点日志

在sentinel集群环境下需要多个sentinel互相沟通来确认某个master是否真的死了,quorum这个参数是进行客观下线的一个依据,意思是至少有quorum个sentinel认为这个master有故障,才会对这个master进行下线以及故障转移。因为有的时候,某个sentinel节点可能因为自身网络原因,导致无法连接master,而此时master并没有出现故障,所以,这就需要多个sentinel都一致认为该master有问题,才可以进行下一步操作,这就保证了公平性和高可用。

4.搭建集群

1.准备工作

因为集群操作需要新的节点进行部署我这边直接删掉了原来的主从节点

[root@redis1 redis]# rm -rf 6379 6380 s1 s2
[root@redis1 redis]# ls
redis-stable
[root@redis1 redis]# mkdir 6379 6380 6381 7379 7380 7381

准备一个新的redis.conf文件,内容如下:

daemonize yes
bind 0.0.0.0
dir /opt/redis-stable/cluster/
port 6379
dbfilename dump_6379.rdb
pidfile /var/run/redis_6379.pid
# 开启集群设置
cluster-enabled yes
# 设置节点配置文件
cluster-config-file node-6379.conf
# 设置节点失联时间,超过该时间(毫秒),集群自动进行主从切换
cluster-node-timeout 15000将配置文件复制到所有的文件夹中,然后启动所有的redis节点

2.启动集群

[root@redis1 ~]# /usr/local/redis/redis-stable/src/redis-cli --cluster create --cluster-replicas 1 192.168.37.94:6379 192.168.37.94:6380 192.168.37.94:6381 192.168.37.94:7379 192.168.37.94:7380 192.168.37.94:7381

在这里插入图片描述

3.检查效果

[root@redis1 ~]# redis-cli -p 6379
127.0.0.1:6379> set a 1
(error) MOVED 15495 192.168.37.94:6381    #如果正常的使用就会出现报错
[root@redis1 ~]# redis-cli -c -p 6379    #集群操作的时候要加-c选项
127.0.0.1:6379> set a 1
-> Redirected to slot [15495] located at 192.168.37.94:6381
OK
192.168.37.94:6381> 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/869682.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微信定时推送LeetCode每日一题,再也不怕没人喊你刷题了

前段时间发过一篇关于微信机器人开发的文章&#xff0c;讲述了如何快速开发一个微信机器人&#xff0c;本篇文章就来实现一个最近开发的一个功能案例&#xff0c;在这个案例中会遇到了各种问题&#xff0c;可以帮助大家减少自己去踩坑的时间。通过此案例也可以帮助你去扩想一些…

Profibus_DP转ModbusTCP网关模块连马保与上位机通讯

Profibus转ModbusTCP网关模块&#xff08;XD-ETHPB20&#xff09;广泛应用于工业自动化领域。例如&#xff0c;可以将Profibus网络中的传感器数据转换为ModbusTCP协议&#xff0c;实现数据的实时监控和远程控制。本文介绍了如何利用Profibus转ModbusTCP网关&#xff08;XD-ETHP…

【AMBA】AHB总线中的HTRANS、HSIZE、HBURST以及1K边界问题

HTRANS、HSIZE和HBURST共同决定下一次数据传输的地址。 HTRANS[1:0]定义传输类型 HTRANS[1:0]主机传输状态描述00IDLE空闲表示没有进行数据传输&#xff0c;默认状态。主设备虽然可能已经占用了总线&#xff0c;但是还没有开始传输数据。从设备需要返回OKAY响应01BUSY忙主设备…

前端面试39(关于git)

针对前端开发者的Git面试题可以覆盖Git的基础概念、常用命令、工作流程、团队协作、以及解决冲突等方面。以下是一些具体的Git面试 Git基础知识 什么是Git&#xff1f; Git是一个分布式版本控制系统&#xff0c;用于跟踪计算机文件的更改&#xff0c;并协调多个人共同在一个项…

基于视觉的具身导航

基于视觉的具身导航 背景 什么是&#xff08;视觉的&#xff1f;&#xff09;具身导航 输入机器人观测的当前图像 o t o_t ot​和目标图像 o G o_G oG​&#xff0c;输出当前时间步的控制动作 u t u_t ut​&#xff0c;最终到达指定地点的算法流程。 通用的评价指标 性能指…

Git常见命令和用法

Git 文件状态 Git 文件 2 种状态: 未跟踪:新文件&#xff0c;从未被 Git 管理过已跟踪:Git 已经知道和管理的文件 常用命令 命令作用注意git -v查看 git 版本git init初始化 git 仓库初始化之后有工作区、暂存区(本地库)、版本库git add 文件标识暂存某个文件文件标识以终…

人工智能建立在对象存储上的真正原因

tl;dr: 在这篇文章中&#xff0c;我们将探讨 AI 工作负载依赖高性能对象存储的四个技术原因。 1. 对非结构化数据没有限制 在当前的机器学习范式中&#xff0c;性能和能力与计算成比例&#xff0c;计算实际上是数据集大小和模型大小的代理&#xff08;神经语言模型的缩放定律&a…

C#开发:下载node.js指定版本

一、打开官网 二、找到指定版本 三、选择程序包msi下载 四、验证下载是否成功 cmd输入&#xff1a; node -v npm -v

请跳至打印机属性的“Adobe PDF设置”页面,取消选择“仅停靠系统字体;不使用文档字体”

场景&#xff1a; 当使用adobe pdf打印时&#xff0c;出现如下提示“请跳至打印机属性的“Adobe PDF设置”页面&#xff0c;取消选择“仅停靠系统字体&#xff1b;不使用文档字体””&#xff0c;该如何解决。 描述 □“仅停靠系统字体&#xff1b;不使用文档字体” 复选本框…

基坑安全:自动化监测系统的革新力量

在日新月异的基坑工程领域&#xff0c;基坑安全自动化监测系统犹如一位守护者&#xff0c;以其独特的优势&#xff0c;为工程的安全与质量保驾护航。该系统集先进的测量仪器、计算机技术与现代传感技术于一体&#xff0c;对基坑的围护结构及周边环境进行全方位、高精度的实时监…

从零开始学量化~Ptrade使用教程(四)——股票普通买卖与回购业务

股票普通买卖 股票买入 通过选择委托方向实现股票的买入与卖出&#xff0c;可根据输入的价格自动查询可买数量。 用鼠标点击【买入】&#xff0c;如图所示&#xff1a; 输入股票代码并选中后&#xff0c;选择委托类型&#xff0c;若为限价类型&#xff0c;输入委托价格&#xf…

【漏洞复现】锐捷校园网自助服务系统 任意文件读取

声明&#xff1a;本文档或演示材料仅用于教育和教学目的。如果任何个人或组织利用本文档中的信息进行非法活动&#xff0c;将与本文档的作者或发布者无关。 一、漏洞描述 锐捷校园网自助服务系统是用于学校网络管理的一个平台&#xff0c;login_judge.jsf接口存在任意文件读取…

中职网络安全B模块渗透测试server2380

使用nmap扫描添加参数-sV Flag:2.4.38 添加参数-A不然扫不全 &#xff08;这两题可以直接加-sV -A&#xff09; Flag: 4.3.11-Ubuntu 根据nmap扫描发现系统为ubuntu系统&#xff0c;ubuntu操作系统在某些版本中默认包含一个名为"ubuntu"的用户帐户。这是为了方…

重生奇迹mu自带四重箭加穿透的弓

1.烈风射手 烈风射手是自带四重箭加穿透的弓之一。该职业的技能树中有一个叫做“四箭连发”的技能&#xff0c;可以让玩家在一次攻击中发射四支箭矢&#xff0c;每支箭矢都带有穿透效果。 2.影魅猎人 影魅猎人也是自带四重箭加穿透的弓之一。该职业的技能树中有一个叫做“穿…

案例分享:Qt modbusTcp调试工具(读写Byte、Int、DInt、Real、DReal)(当前v1.0.0)

若该文为原创文章&#xff0c;转载请注明原文出处 本文章博客地址&#xff1a;https://blog.csdn.net/qq21497936/article/details/140313789 红胖子(红模仿)的博文大全&#xff1a;开发技术集合&#xff08;包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片…

Backend - C# 操作PostgreSQL DB

目录 一、安装 Npgsql 插件 &#xff08;一&#xff09;作用 &#xff08;二&#xff09;操作 &#xff08;三&#xff09;注意 二、操作类 &#xff08;一&#xff09;操作类 1.NpgsqlConnection类 &#xff08;1&#xff09;作用 &#xff08;2&#xff09;引入 &a…

[高频SQL50题(基础版)]第五百八十四题,寻找用户推荐人

题目&#xff1a; 表: Customer ---------------------- | Column Name | Type | ---------------------- | id | int | | name | varchar | | referee_id | int | ---------------------- 在 SQL 中&#xff0c;id 是该表的主键列。 该表的每一…

儿童房灯具什么牌子好?几款儿童房灯具款式墙裂分享

随着科技的不断发展和生活方式的改变&#xff0c;儿童青少年近视率的增长趋势引起了人们的关注。近视不仅对孩子们的视力健康构成威胁&#xff0c;还可能对他们的学习和日常生活带来不便。因此&#xff0c;如何有效地预防和改善儿童青少年的视力问题成为了一个亟待解决的课题。…

2024学生党蓝牙耳机什么牌子好?品牌高性价比蓝牙耳机推荐

2024年&#xff0c;对于追求性价比和品质的学生党来说&#xff0c;选择一款合适的蓝牙耳机是提升学习和生活品质的重要一环。面对市场上琳琅满目的蓝牙耳机产品&#xff0c;2024学生党蓝牙耳机什么牌子好&#xff1f;如何找到既满足音质需求又具备高性价比的款式呢&#xff1f;…

高考后的IT专业启航:暑期预习指南与学习路线图

文章目录 每日一句正能量前言&#xff1a;启航IT世界&#xff0c;高考后的暑期学习之旅基础课程预习指南基础课程预习指南&#xff1a;构建你的IT知识大厦引言一、计算机科学导论二、编程语言入门三、操作系统基础四、数据结构与算法五、网络基础六、数据库原理结语 技术学习路…