Redis(主从复制搭建)

打印 上一主题 下一主题

主题 804|帖子 804|积分 2412

1.主从复制表示图


2.搭建一主多从

1.搭建规划三台机器(一主二从)

2.将两台从Redis服务都按照同样的方式配置(可以理解为Redis初始化)

1.安装Redis

1.yum安装gcc

  1. yum install gcc
复制代码
2.查看gcc版本

  1. gcc --version
复制代码

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


4.进入/opt目次下然后解压

  1. cd /opt && tar -zxvf redis-6.2.6.tar.gz
复制代码

5.进入 redis-6.2.6目次

  1. cd redis-6.2.6
复制代码

6.编译并安装

  1. make && make install
复制代码

7.进入 /usr/local/bin 查看是否有redis的下令

  1. cd /usr/local/bin && ll
复制代码

2.启动并使用Redis

1.进入 /opt/redis-6.2.6/

  1. cd /opt/redis-6.2.6/
复制代码

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

  1. cp redis.conf /etc/redis.conf
复制代码

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

  1. vim /etc/redis.conf
复制代码

4.启动redis,指定刚才的配置文件

  1. /usr/local/bin/redis-server /etc/redis.conf
复制代码
5.查看redis进程

  1. ps -aux | grep redis
复制代码

3.Redis根本配置

1.修改端口为7489 port


2.设置redis暗码 requirepass


3.使redis支持远程访问 bind



4.登录redis的下令行,关闭redis

  1. /usr/local/bin/redis-cli
复制代码

5.重新启动redis,使配置见效

  1. /usr/local/bin/redis-server /etc/redis.conf
  2. && ps -aux | grep redis
复制代码

4.开启7489端口

1.宝塔开启端口

  1. systemctl start firewalld && firewall-cmd --permanent --add-port=7489/tcp && firewall-cmd --reload && firewall-cmd --query-port=7489/tcp
复制代码

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


5.Redis长期化配置

1.进入redis配置文件

  1. vim /etc/redis.conf
复制代码
2.dbfilename为redis长期化的文件名(一样寻常不消改)


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


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


5.进入下令行关闭redis,需要指定端口登录

  1. /usr/local/bin/redis-cli
  2. -p 7489
复制代码

6.重新启动redis,使配置见效

  1. /usr/local/bin/redis-server /etc/redis.conf
  2. && ps -aux | grep redis
复制代码

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


6.测试Java连接redis

1.引入jedis的jar包


2.编写测试程序

  1.     public static void main(String[] args) {
  2.         // 连接服务器的redis命令行
  3.         Jedis jedis = new Jedis("xxx", xx);
  4.         // 如果redis设置了密码要先进行验证
  5.         jedis.auth("******");
  6.         String ping = jedis.ping();
  7.         System.out.println(ping);
  8.     }
复制代码
3.配置Redis的一主二仆

1.在配置之前,将三台的Redis的7489端口完全放开


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


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



4.在两台从服务上输入 slaveof 主服务ip 主服务端口 来设置主服务

  1. slaveof xxxx  xxx
复制代码
5.输入 info replication
来查看角色


1.从服务


2.主服务


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


6.为两台从服务器的 masterauth 配置主服务器的暗码,然后测试连接

1.分别设置暗码


2.分别重启


3.从服务器重新配置

  1. slaveof 。。。。。。
复制代码

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

  1. info replication
复制代码

7.注意事项和细节

1.如果想要长期化,需要在从服务的配置文件中配置 slaveof … 否则重启主从关系就会消散

2.主服务器可读可写,从服务器只可读

3.主从复制原理分析

1.原理表示图


2.解读


3.细节

1.主服务down掉了的情况



  • 从服务并不会抢占主服务的位置
  • 当主服务重新启动之后,从服务又会指向主服务
2.当从服务down掉了的情况



  • 当再次连接主服务时还是会进行一次全量备份
4.薪火相传



  • 简单来说就是让b是a的slave,c是b的slave
  • 这样c的数据就从b来获取,而写入操作还是从a进行

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


4.哨兵模式(sentinel)

1.配置哨兵

1.保持一主二仆的情况即可

2.任意找一台服务器启动哨兵,这里选择在master服务器启动

1.在/etc下面创建一个sentinel.conf的配置文件

  1. touch /etc/sentinel.conf
复制代码
2.编辑文件,设置master的名字,ip+端口以及哨兵的个数,这里是1,还有master的暗码

  1. vim /etc/sentinel.conf
复制代码
  1. sentinel monitor redis_master ........
复制代码
3.再开启一个连接,启动哨兵,指定配置文件

  1. /usr/local/bin/redis-sentinel /etc/sentinel.conf
复制代码

2.测试

1.关闭master


2.等候一会,查看哨兵,可以看到切换了master

3.查看子节点的情况,注意:此时需要重新进行暗码验证



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


3.注意事项和细节

1.主机down后的实行流程


2.哨兵挑选新master的依据


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

4.如果原来的主节点有暗码,则需要在sentinel.conf 配置auth-pass参数设置暗码

5.关于暗码配置方案



  • 在redis.conf中配置requirepass 以及masterauth 都为相同的暗码,这样各个节点就可以正常连接了
  • 如果是哨兵模式还要在sentinel.conf 配置master的暗码,格式为 sentinel auth-pass master名字yourStrongPassword

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

耶耶耶耶耶

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表