Redis主从复制哨兵集群搭建

1 Redis主从复制

1.1搭建主从复制集群

建立主从复制关系有三种方式:

  • 在redis.conf文件中配置slaveof <masterip> <masterport>选项,然后指定该配置文件启动Redis生效。
  • redis-server启动命令后加上--slaveof <masterip> <masterport>启动生效。
  • 直接在从节点使用 slaveof <masterip> <masterport>命令执行生效。

重启三个redis服务,进入主节点redis客户端

./redis-cli
info replication

发现连接到主节点的从节点数为0
在这里插入图片描述
在从节点执行相同命令info replication后,发现主节点状态为down,如下图:
在这里插入图片描述
出现该问题可能原因

  1. 防火墙没有关闭
# 查看防火墙状态
firewall-cmd  --state
# 停止firewall
systemctl  stop  firewalld.service
  1. redis配置只允许本机客户端连接
#原本配置中有如下一行
bind 127.0.0.1
# 将其修改为 
bind 0.0.0.0
  1. redis配置中加了连接密码
配置了验证密码,需要在主从都配置
masterauth   123456

检查以上配置无误后重启三台redis服务,主从连接正常
在这里插入图片描述
然后在主节点进行写操作,成功后就可以同步到从节点。从节点不能进行写操作。

1.2 脱离主从复制集群

在从节点上执行

slaveof no one

会断开与主节点连接,不再从主节点复制数据。

1.2 主从复制原理

2 哨兵集群搭建

2.1 新增配置
#在redis安装目录/bin下新增 sentinel.conf,在三个redis服务bin目录下执行相同操作
bin>mkdir sentinel-tmp
bin>vim sentinel.conf
#内容如下
daemonize yes
port 26379
protected-mode no
dir "/usr/local/redis/bin/sentinel-tmp"
sentinel myid 0b8debb01e9f03b79640fd88e2baec93581a5935
sentinel deny-scripts-reconfig yes
# 配置主节点ip和端口,最后的2表示当2个sentinel发现主节点异常时则重新选举主节点
sentinel monitor redis-master 192.168.152.7 6379 2
sentinel config-epoch redis-master 1

演示效果如下:

  • 启动三台机器redis服务
    在这里插入图片描述
  • 然后将主节点redis宕机后
    在这里插入图片描述
    可以看到主节点宕机后,重新选举了一个从节点为主节点。

3 单机安装Redis Cluster

3.1 进入到/usr/local/redis目录下,执行如下操作

我的redis源文件目录在:/usr/soft/redis-4.0.12
redis集群安装目录:/usr/local/redis/redis-cluster/

#进入/usr/local/redis/目录下
mkdir redis-cluster
cd redis-cluster
mkdir 7291 7292 7293 7294 7295 7296
3.2 准备配置文件
#复制配置文件
7291>cp /usr/soft/redis-4.0.12/redis.conf /usr/local/redis01/redis-cluster/9291
#修改redis.conf配置文件
port 7291
dir /usr/local/redis/redis-cluster/7291/
cluster-enabled yes
cluster-config-file nodes-7291.conf
cluster-node-timeout 5000
appendonly yes
pidfile /var/run/redis_7291.pid
bind 127.0.0.1
#复制7291的redis.conf文件到其他文件夹下
7291>cp redis.conf ../7292
7291>cp redis.conf ../7293
......
#批量替换内容
sed -i 's/7291/7292/g' 7292/redis.conf
sed -i 's/7291/7293/g' 7293/redis.conf
......
3.3 安装依赖

接着安装ruby依赖、rubygems依赖、gem-redis依赖

#确保可以联网
yum install ruby -y
yum install rubygems -y
#这一步需要耐心等待下,可能我的网络笔记慢吧
gem install redis -v 3.0.7

在这里插入图片描述
如图安装成功!

3.4 创建集群

/usr/local/redis

#一个个启动很麻烦,可以写个脚本把6个redis服务都启动下
redis>./bin/redis-server redis-cluster/7291/redis.conf
redis>...
redis>ps -ef|grep redis
#进入redis源文件目录下
redis> cd /usr/soft/redis-4.0.12/src
src>./redis-trib.rb create --replicas 1 192.168.152.6:7291 192.168.152.6:7292 192.168.152.6:7293 192.168.152.6:7294 192.168.152.6:7295 192.168.152.6:7296

如图创建集群成功,分配槽位solt完成。
在这里插入图片描述

3.5 操作集群

#进入/usr/local/redis目录
redis>./bin/redis-cli -h 192.168.152.6 -p 7291
#查看集群信息
192.168.152.6:7291>cluster info

在这里插入图片描述
根据对key运算发现该key的槽位不在这台redis服务管理返回内,会报错,提示需要到那台执行操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值