Redis(主从复制搭建)

文章目录

    • 1.主从复制示意图
    • 2.搭建一主多从
        • 1.搭建规划三台机器(一主二从)
        • 2.将两台从Redis服务都按照同样的方式配置(可以理解为Redis初始化)
          • 1.安装Redis
            • 1.yum安装gcc
            • 2.查看gcc版本
            • 3.将redis6.2.6上传到/opt目录下
            • 4.进入/opt目录下然后解压
            • 5.进入 redis-6.2.6目录
            • 6.编译并安装
            • 7.进入 /usr/local/bin 查看是否有redis的命令
          • 2.启动并使用Redis
            • 1.进入 /opt/redis-6.2.6/
            • 2.将里面的redis.conf复制一份到/etc下
            • 3.编辑 /etc/redis.conf,将daemonize no修改成daemonize yes即以守护进程的方式启动(后台启动)
            • 4.启动redis,指定刚才的配置文件
            • 5.查看redis进程
          • 3.Redis基本配置
            • 1.修改端口为7489 port
            • 2.设置redis密码 requirepass
            • 3.使redis支持远程访问 bind
            • 4.登录redis的命令行,关闭redis
            • 5.重新启动redis,使配置生效
          • 4.开启7489端口
            • 1.宝塔开启端口
            • 2.腾讯云开启端口(只允许本机ip访问)
          • 5.Redis持久化配置
            • 1.进入redis配置文件
            • 2.dbfilename为redis持久化的文件名(一般不用改)
            • 3.dir修改为/root/则每次持久化的dump.rdb都会在/root/下,恢复时无论在哪里启动,都会读取这个文件进行恢复
            • 4.开启AOF持久化配置,编辑配置文件找到appendonly,设置成yes
            • 5.进入命令行关闭redis,需要指定端口登录
            • 6.重新启动redis,使配置生效
            • 7.发现/root/下面有两个配置文件,如果没有dump.rdb是因为没有对redis进行操作
          • 6.测试Java连接redis
            • 1.引入jedis的jar包
            • 2.编写测试程序
        • 3.配置Redis的一主二仆
          • 1.在配置之前,将三台的Redis的7489端口完全放开
          • 2.三台机器都进入redis的客户端,将数据全部清除
          • 3.输入 info replication 可以看到目前三台机器都为master
          • 4.在两台从服务上输入 slaveof 主服务ip 主服务端口 来设置主服务
          • 5.输入 info replication 来查看角色
            • 1.从服务
            • 2.主服务
            • 3.没连接成功,后来询问GPT4发现如果主服务器配置了密码,则需要在从服务器的masterauth 中设置一下密码
          • 6.为两台从服务器的 masterauth 配置主服务器的密码,然后测试连接
            • 1.分别设置密码
            • 2.分别重启
            • 3.从服务器重新配置
            • 4.再查看一下主服务器的状态,也是成功连接两台从服务器
          • 7.注意事项和细节
            • 1.如果想要持久化,需要在从服务的配置文件中配置 slaveof ...... 否则重启主从关系就会消失
            • 2.主服务器可读可写,从服务器只可读
    • 3.主从复制原理分析
        • 1.原理示意图
        • 2.解读
        • 3.细节
          • 1.主服务down掉了的情况
          • 2.当从服务down掉了的情况
        • 4.薪火相传
        • 5.反客为主(是在薪火相传的基础上的)
    • 4.哨兵模式(sentinel)
        • 1.配置哨兵
          • 1.**保持一主二仆的环境即可**
          • 2.随便找一台服务器启动哨兵,这里选择在master服务器启动
            • 1.在/etc下面创建一个sentinel.conf的配置文件
            • 2.编辑文件,设置master的名字,ip+端口以及哨兵的个数,这里是1,还有master的密码
            • 3.再开启一个连接,启动哨兵,指定配置文件
        • 2.测试
          • 1.关闭master
          • 2.等待一会,查看哨兵,可以看到切换了master
          • 3.查看子节点的情况,注意:此时需要重新进行密码验证
          • 4.重启原来的master,会自动降级为子节点
        • 3.注意事项和细节
          • 1.主机down后的执行流程
          • 2.哨兵挑选新master的依据
          • 3.重启原来的master,会自动降级为子节点
          • 4.如果原来的主节点有密码,则需要在sentinel.conf 配置auth-pass参数设置密码
          • 5.关于密码配置方案

1.主从复制示意图

image-20240502113422879

2.搭建一主多从

1.搭建规划三台机器(一主二从)
2.将两台从Redis服务都按照同样的方式配置(可以理解为Redis初始化)
1.安装Redis
1.yum安装gcc
yum install gcc
2.查看gcc版本
gcc --version

image-20240502134411561

3.将redis6.2.6上传到/opt目录下

image-20240502134559769

4.进入/opt目录下然后解压
cd /opt && tar -zxvf redis-6.2.6.tar.gz

image-20240502134704827

5.进入 redis-6.2.6目录
cd redis-6.2.6

image-20240502134745310

6.编译并安装
make && make install

image-20240502134932117

7.进入 /usr/local/bin 查看是否有redis的命令
cd /usr/local/bin && ll

image-20240502135006749

2.启动并使用Redis
1.进入 /opt/redis-6.2.6/
cd /opt/redis-6.2.6/

image-20240502135103511

2.将里面的redis.conf复制一份到/etc下
cp redis.conf /etc/redis.conf

image-20240502135237138

3.编辑 /etc/redis.conf,将daemonize no修改成daemonize yes即以守护进程的方式启动(后台启动)
vim /etc/redis.conf

image-20240502135330240

4.启动redis,指定刚才的配置文件
/usr/local/bin/redis-server /etc/redis.conf
5.查看redis进程
ps -aux | grep redis

image-20240502135537103

3.Redis基本配置
1.修改端口为7489 port

image-20240502135741587

2.设置redis密码 requirepass

image-20240502135842050

3.使redis支持远程访问 bind

image-20240502140044483

image-20240502140108290

4.登录redis的命令行,关闭redis
/usr/local/bin/redis-cli

image-20240502140407662

5.重新启动redis,使配置生效
/usr/local/bin/redis-server /etc/redis.conf && ps -aux | grep redis

image-20240502140612286

4.开启7489端口
1.宝塔开启端口
systemctl start firewalld && firewall-cmd --permanent --add-port=7489/tcp && firewall-cmd --reload && firewall-cmd --query-port=7489/tcp

image-20240502140719020

2.腾讯云开启端口(只允许本机ip访问)

image-20240502143052618

5.Redis持久化配置
1.进入redis配置文件
vim /etc/redis.conf
2.dbfilename为redis持久化的文件名(一般不用改)

image-20240502141741998

3.dir修改为/root/则每次持久化的dump.rdb都会在/root/下,恢复时无论在哪里启动,都会读取这个文件进行恢复

image-20240502141833925

4.开启AOF持久化配置,编辑配置文件找到appendonly,设置成yes

image-20240502142032064

5.进入命令行关闭redis,需要指定端口登录
/usr/local/bin/redis-cli -p 7489

image-20240502142252827

6.重新启动redis,使配置生效
/usr/local/bin/redis-server /etc/redis.conf && ps -aux | grep redis

image-20240502142304676

7.发现/root/下面有两个配置文件,如果没有dump.rdb是因为没有对redis进行操作

image-20240502142608205

6.测试Java连接redis
1.引入jedis的jar包

image-20240502143134966

2.编写测试程序
    public static void main(String[] args) {
        // 连接服务器的redis命令行
        Jedis jedis = new Jedis("xxx", xx);
        // 如果redis设置了密码要先进行验证
        jedis.auth("******");
        String ping = jedis.ping();
        System.out.println(ping);
    }
3.配置Redis的一主二仆
1.在配置之前,将三台的Redis的7489端口完全放开

image-20240502151305582

2.三台机器都进入redis的客户端,将数据全部清除

image-20240502152257185

3.输入 info replication 可以看到目前三台机器都为master

image-20240502152339936

4.在两台从服务上输入 slaveof 主服务ip 主服务端口 来设置主服务
slaveof xxxx  xxx
5.输入 info replication 来查看角色
1.从服务

在这里插入图片描述

2.主服务

image-20240502160014051

3.没连接成功,后来询问GPT4发现如果主服务器配置了密码,则需要在从服务器的masterauth 中设置一下密码

image-20240502160216284

6.为两台从服务器的 masterauth 配置主服务器的密码,然后测试连接
1.分别设置密码

image-20240502160347989

2.分别重启

image-20240502160945545

3.从服务器重新配置
slaveof 。。。。。。

在这里插入图片描述

4.再查看一下主服务器的状态,也是成功连接两台从服务器
info replication

在这里插入图片描述

7.注意事项和细节
1.如果想要持久化,需要在从服务的配置文件中配置 slaveof … 否则重启主从关系就会消失
2.主服务器可读可写,从服务器只可读

3.主从复制原理分析

1.原理示意图

image-20240502162041121

2.解读

image-20240502162022135

3.细节
1.主服务down掉了的情况
  • 从服务并不会抢占主服务的位置
  • 当主服务重新启动之后,从服务又会指向主服务
2.当从服务down掉了的情况
  • 当再次连接主服务时还是会进行一次全量备份
4.薪火相传
  • 简单来说就是让b是a的slave,c是b的slave
  • 这样c的数据就从b来获取,而写入操作还是从a进行

image-20240502163548532

5.反客为主(是在薪火相传的基础上的)

image-20240502164007948

4.哨兵模式(sentinel)

1.配置哨兵
1.保持一主二仆的环境即可
2.随便找一台服务器启动哨兵,这里选择在master服务器启动
1.在/etc下面创建一个sentinel.conf的配置文件
touch /etc/sentinel.conf
2.编辑文件,设置master的名字,ip+端口以及哨兵的个数,这里是1,还有master的密码
vim /etc/sentinel.conf
sentinel monitor redis_master ........
3.再开启一个连接,启动哨兵,指定配置文件
/usr/local/bin/redis-sentinel /etc/sentinel.conf 

image-20240502165851224

2.测试
1.关闭master

image-20240502183659278

2.等待一会,查看哨兵,可以看到切换了master
3.查看子节点的情况,注意:此时需要重新进行密码验证

在这里插入图片描述
在这里插入图片描述

4.重启原来的master,会自动降级为子节点

在这里插入图片描述

3.注意事项和细节
1.主机down后的执行流程

image-20240502184700413

2.哨兵挑选新master的依据

image-20240502184725028

3.重启原来的master,会自动降级为子节点
4.如果原来的主节点有密码,则需要在sentinel.conf 配置auth-pass参数设置密码
5.关于密码配置方案
  • 在redis.conf中配置requirepass 以及masterauth 都为相同的密码,这样各个节点就可以正常连接了
  • 如果是哨兵模式还要在sentinel.conf 配置master的密码,格式为 sentinel auth-pass master名字yourStrongPassword

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ACM实训冲刺第一天

目录 ACM实训课程考核 考核内容 备赛安排 推荐学习资源 ACM实训准备规划 前话 历届习题(未曾改变) 第0套 第1套 第2套 第3套 第4套 规划 5.8 - 5.12 (11周) 5.13-5.19(12周) 5.20-5.26&…

解放双手,利用自动点赞软件提高曝光度

在数字时代,社交媒体如同一片繁茂的森林,每一条动态、每一张照片都是树上挂着的果实,而点赞则仿佛是那些吸引眼球的色彩。在这个以流量为王的网络世界里,点赞数往往与内容的可见度直接相关,它不仅能够增加帖子的权重&a…

智能家居4 -- 添加接收消息的初步处理

这一模块的思路和前面的语言控制模块很相似&#xff0c;差别只是调用TCP 去控制 废话少说&#xff0c;放码过来 增添/修改代码 receive_interface.c #include <pthread.h> #include <mqueue.h> #include <string.h> #include <errno.h> #include <…

渐进淡出背景个人导航页源码(火影版)

渐进淡出背景个人导航页源码&#xff08;火影版&#xff09; 效果图部分源码领取源码下期更新预报 效果图 部分源码 <!DOCTYPE html> <html> <head> <!--小K网 www.xkwo.com --><meta charset"UTF-8"><title>火影版个人主页<…

如果出现一个工具,可以让前端开发彻底不用再手写UI,这个工具意义大吗?干货!

求这样的一个工具&#xff0c;可以让后端开发、嵌入式开发、产品经理、UI设计师都能用&#xff0c;注意&#xff0c;不是在一个简单的静态页生成&#xff0c;也不是类似飞冰那种 generator &#xff0c;而是真正让设计师和开发者在各自的那侧达成自治&#xff0c;可以做到吗&am…

异构图神经网络——Heterogeneous Graph Neural Networks

相关代码见文末 1.回顾同构图 1.1 GNN GNN基本计算方法——邻接矩阵乘以节点,聚合相邻节点的特征,得到本节点的特征表达 1.2 Graph Attention Network 引入图注意力,实现边的权重可学习,最简单的方法是,将两个节点的特征进行拼接,使用一组可学习的权重参数映射为边的权…

搜狗输入法 PC端 v14.4.0.9307 去广告绿化版.

软件介绍 搜狗拼音输入法作为众多用户计算机配置的必备工具&#xff0c;其功能的全面性已为众所周知&#xff0c;并且以其高效便捷的输入体验受到广大使用者的青睐。然而&#xff0c;该软件在提供便利的同时&#xff0c;其内置的广告元素常常为用户带来一定的干扰。为此&#…

游戏理解入门:Rust+Bracket开发一个小游戏

1. Game loop 使用game loop可以使得游戏运行更加流畅和顺滑&#xff0c;它可以&#xff1a; 初始化窗口、图形和其他资源&#xff1b;每当屏幕刷新他都会运行(通常是每秒30,60 )&#xff1b;每次通过循环&#xff0c;他都会调用游戏的tick()函数。 大致的原理流程如下&…

利用生成式AI重新构想ITSM的未来

对注入 AI 的生成式 ITSM 的需求&#xff0c;在 2023 年 Gartner AI 炒作周期中&#xff0c;生成式 AI 达到预期值达到顶峰后&#xff0c;三分之二的企业已经将生成式 AI 集成到其流程中。 你问为什么这种追求&#xff1f;在预定义算法的驱动下&#xff0c;IT 服务交付和管理中…

又发现一个ai生成音乐的网站-heymusic

网址 https://heymusic.ai/ 尴尬&#xff0c;不挂梯子能登录进来&#xff0c;但是谷歌账号注册不了&#xff0c;刷新了几遍也没注册上。 看了下价格&#xff0c;应该不是免费的&#xff0c;所以也没了试用的兴趣。 我也不想用别的邮箱注册了&#xff0c;所以只能简单的水一…

固定资产管理系统参考论文(论文 + 源码)

【免费】固定资产管理系统.zip资源-CSDN文库https://download.csdn.net/download/JW_559/89282536 固定资产管理系统 摘 要 随着计算机信息技术的发展以及对资产、设备的管理科学化、合理化的高要求&#xff0c;利用计算机实现设备及资产的信息化管理已经显得非常重要。 固…

IO 5.8日

1&#xff1a;使用 dup2 实现错误日志功能 使用 write 和 read 实现文件的拷贝功能&#xff0c;注意&#xff0c;代码中所有函数后面&#xff0c;紧跟perror输出错误信息&#xff0c;要求这些错误信息重定向到错误日志 err.txt 中去 2&#xff1a;判断一个文件是否拥有用户可写…

LeetCode509:斐波那契数(使用动态规划)

题目描述 斐波那契数 &#xff08;通常用 F(n) 表示&#xff09;形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始&#xff0c;后面的每一项数字都是前面两项数字的和。也就是&#xff1a; F(0) 0&#xff0c;F(1) 1 F(n) F(n - 1) F(n - 2)&#xff0c;其中 n > 1…

BFS专题——FloodFill算法:200.岛屿数量

文章目录 题目描述算法原理代码实现CJava 题目描述 题目链接&#xff1a;200.岛屿数量 PS:注意题目中每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。也就是说斜角是不算了&#xff0c; 例如示例二&#xff0c;是三个岛屿。 算法原理 这道题目是 DFS&#xff0…

三维天地助力实验室质量管理工作无纸化、流程化、标准化

质量管理是实验室日常管理工作中的重点内容,目前大多数实验室信息化的方向还是以实验主流程向无纸化转变为主,质量管理工作仍然依靠线下纸质文件或者线上登记台账的方式进行,这种方式存在任务流转效率低、资源浪费等问题,此外历史数据难以保存也是实验室管理人员的一大痛点。 …

【Android】Room数据库的简单使用方法

Room数据库的使用方法 目录 1、添加Room数据库的依赖2、Entity——定义实体类 2.1 定义主键——PrimaryKey2.2 字段注解——ColumnInfo 3、Dao——定义数据访问对象4、Database——数据库 4.1 通过回调观察数据库是否创建成功 5、使用时注意点6、编写异步 DAO 查询 6.1 写异步…

24_Scala集合Map

文章目录 Scala集合Map1.构建Map2.增删改查3.Map的get操作细节 Scala集合Map –默认immutable –概念和Java一致 1.构建Map –创建kv键值对 && kv键值对的表达 –创建immutable map –创建mutable map //1.1 构建一个kv键值对 val kv "a" -> 1 print…

Java IO流(二)

1. 缓冲流 1.1 字节缓冲流概述 当对文件或其他数据源进行频繁的读/写操作时&#xff0c;效率比较低&#xff0c;这时如果使用缓存流就能够更高效地读/写信息。 比如&#xff0c;可以使用缓冲输出流来一次性批量写出若干数据减少写出次数来提高写出效率。 如果用生活中的例子做…

多模态EDA论文小记

论文地址 该论文主要改进点是&#xff1a;通过动态化局部搜索中每个集群大小&#xff0c;高斯和柯西分布共同产生个体。总的来说改进点不多&#xff0c;当然也可能是笔者还没发现。 局部搜索 划分集群 划分集群有两个策略分别是&#xff1a; 随机生成一个点作为中心点&…

什么软件可以把视频合并在一起?6个软件教你快速进行视频编辑

什么软件可以把视频合并在一起&#xff1f;6个软件教你快速进行视频编辑 当你需要对视频进行编辑和合并时&#xff0c;选择合适的软件可以极大地提高工作效率和编辑质量。以下是六款被广泛认可且功能强大的视频编辑软件&#xff0c;它们可以帮助你快速、高效地进行视频编辑和合…
最新文章