Loading

redis哨兵v1

redis哨兵集群搭建

重点:

  主从复制:主从复制是高可用redis的基础,主从复制主要实现了数据的多机备份,以及对于读操作的负载均衡和简单的故障恢复。

哨兵和集群都是在主从复制基础上实现高可用的。

缺点:故障恢复无法自动化,写操作无法负载均衡,存储能力受到单机的限制。

  哨兵:在主从复制的基础上,哨兵实现了自动化的故障恢复。

缺点:写操作无法负载均衡,存储能力受到单机的限制,哨兵无法对从节点进行自动故障转移,在读写分离的场景下,从节点故障会导致读服务不可用,需要对从节点做额外的监控切换操作。

  集群:通过集群,redis解决了写操作无法负载均衡,以及存储能力受到单机限制的问题,实现了较为完善的高可用方案。

环境:一主两从

主:192.168.0.81

从:192.168.0.82,192.168.0.83

主:81 从1:82 从2:83
服务 master、sentinel slave slave
路径 /data/redis-6.0.6 /data/redis-6.0.6 /data/redis-6.0.6
端口 6379 6379 6379
数据存储 /data/redis-6.0.6 /data/redis-6.0.6 /data/redis-6.0.6
日志路径 /var/log/redis/redis.log /var/log/redis/redis.log /var/log/redis/redis.log

安装依赖

yum install -y gcc gcc-c++
yum -y install centos-release-scl
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
scl enable devtoolset-9 bash
echo “source /opt/rh/devtoolset-9/enable” >>/etc/profile --使永久生效
yum install tcl -y

编译安装redis

mv redis-6.0.6.tar.gz /data/
cd /data
tar -zxvf redis-6.0.6.tar.gz
cd redis-6.0.6
make

修改redis.conf

vim redis.conf
bind 0.0.0.0
protected-mode no
port 6379
daemonize yes
pidfile /var/run/redis_6379.pid
logfile "/var/log/redis/redis.log"
dir ./

主从

修改从节点

vim redis.conf
replicaof 192.168.0.81 6379

依次启动主从

redis-server redis.conf
redis-cli info replication
# Replication
role:master
connected_slaves:2
slave0:ip=192.168.0.83,port=6379,state=online,offset=1344,lag=0
slave1:ip=192.168.0.82,port=6379,state=online,offset=1344,lag=0

哨兵

修改哨兵配置

vim sentinel.conf
port 26379
daemonize yes
pidfile "/var/run/redis-sentinel.pid"
logfile "/var/log/redis/sentinel.log"
sentinel monitor mymaster 192.168.0.82 6379 2

依次启动主从

redis-sentinel sentinel.conf

测试

redis-cli -p 26379 info sentinel
# Sentinel
sentinel_masters:1
sentinel_tilt:0
sentinel_running_scripts:0
sentinel_scripts_queue_length:0
sentinel_simulate_failure_flags:0
master0:name=mymaster,status=ok,address=192.168.0.81:6379,slaves=2,sentinels=3

杀死主节点redis

主
pkill redis-server
redis-cli -p 26379 info sentinel
# Sentinel
sentinel_masters:1
sentinel_tilt:0
sentinel_running_scripts:0
sentinel_scripts_queue_length:0
sentinel_simulate_failure_flags:0
master0:name=mymaster,status=ok,address=192.168.0.82:6379,slaves=2,sentinels=3
posted @ 2022-05-26 16:11  萝卜青菜~  阅读(24)  评论(0编辑  收藏  举报