Redis_如何主从搭建?


选用:一主两从或一主一从

主从搭建步骤:

主机:不用配置。仅仅只需要配置从机,从机slave配置:(这里是伪集群)

1.复制出一个从机,注意使用root用户

[root@xj0927 myapps]# cp redis/ redis3 -r
[root@xj0927 myapps]# ll
drwxr-xr-x. 3 root root 4096 Sep 11 15:42 redis
drwxr-xr-x. 3 root root 4096 Sep 11 16:03 redis3

2.修改从机的redis.conf

语法:replicaof 主机ip 主机端口号

在这里插入图片描述

3.修改从机的port地址为6380(自定义)

redis.conf配置文件:

在这里插入图片描述

4.清除从机中的持久化文件(可选_有则清除)

[root@localhost bin]# rm -rf appendonly.aof dump.rdb

5.启动从机

[root@localhost redis1]# ./bin/redis-server ./redis.conf

查看redis信息:

info replication
在这里插入图片描述

在这里插入图片描述

6.启动6380的客户端

[root@xj0927 redis3]# ./bin/redis-cli -h 192.168.77.130 -p 6380
192.168.77.130:6380> 


从主机添加一条数据:
192.168.77.130:6379> set k8 haha
OK

从机得到数据:
192.168.77.130:6380> get k8
"haha"

注意:

  • 主机一旦发生增删改操作,那么从机会自动将数据同步到从机中
  • 从机不能执行写操作,只能读

7.宕机情况咋办?

从redis:

  • 重新启动即可

主redis:

  • 从数据库(从机)中执行SLAVEOF NO ONE命令,断开主从关系并且提升为主库继续服务[把
    一个从做为主机,这个时候新主机[之前的从机]就具备写入的能力];
  • 主服务器修好后,重新启动后,执行SLAVEOF命令,将其设置为从库[老主机设置为从机]。

缺点:手动执行,过程复杂,容易出错。

添加哨兵:

1.配置哨兵

一主两从,启动任一从机时,启动哨兵模式

哨兵主要是用来监听主服务器的,所以一般把哨兵部署在从服务器上监听。

在从机的bin目录下添加配置文件:sentinel.conf

[root@xj0927 bin]# vim sentinel.conf
sentinel monitor mastername 192.168.77.130 6379 1

在配置中输入:sentinel monitor mastername 内网IP(127.0.0.1) 6379 1

  • mastername 监控主数据的名称,自定义
  • 127.0.0.1:监控主数据库的IP
  • 6379:端口
  • 1:最低通过票数

2.启动哨兵

哨兵是一个单独的进程,启动之前确保主从服务是正常的。先启动主服务,后启动从服务

日志写入文件:

[root@xj0927 bin]#  ./redis-sentinel ./sentinel.conf >sent.log &
[1] 3045

启动redis:

主机启动:
[root@xj0927 redis]# ./bin/redis-server ./redis.conf
从机启动:
[root@xj0927 redis3]# ./bin/redis-server ./redis.conf

启动后,会自动配置sentinel.conf,并生成内容:若下次再启动redis需要删除下生成的内容:

sentinel myid 1f9750f7d952cee9048fcd4c7c8abb20b1ba3961
# Generated by CONFIG REWRITE
port 26379
dir "/home/admin/myapps/redis3/bin"
protected-mode no
sentinel deny-scripts-reconfig yes
sentinel monitor mastername 192.168.77.130 6379 1
sentinel config-epoch mastername 0
sentinel leader-epoch mastername 1
sentinel known-replica mastername 192.168.77.130 6380
sentinel current-epoch 1

启动哨兵:

[root@xj0927 redis3]# ./bin/redis-server redis.conf --sentinel

在这里插入图片描述

注意:若再次启动哨兵,需要删除myid唯一标识(最好启动一次,就新配置一次)
在这里插入图片描述

3.使用哨兵

假如此时:断电了,硬盘故障,坏了等等

在这里插入图片描述

杀死主机pid:kill -9 2773

[root@xj0927 redis]# kill -9 2773

哨兵工作之前的从机:

192.168.77.130:6380> info replication
# Replication
role:slave
master_host:192.168.77.130
master_port:6379

哨兵工作之后:从机自动提升为主机

192.168.77.130:6380> info replication
# Replication
role:master
connected_slaves:0

同时也会自动修改redis.conf的主从机配置文件

replicaof 192.168.77.130 6380

指向了新主机。再次启动原有的主机,原有的主机会变成从机。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值