Redis 集群部署实验(主从复制、哨兵、集群)

Redis 主从复制

  • 一、主从复制
    • 安装 Redis
    • 修改Redis 配置文件(Master节点)
    • 修改Redis 配置文件(Slave节点)
    • 验证主从效果
  • 二、搭建Redis 哨兵模式
    • 修改 Redis 哨兵模式的配置文件(所有节点)
    • 启动哨兵模式
    • 查看哨兵信息
    • 故障模拟
  • 三、搭建 Redis 群集

一、主从复制

主从复制:主从复制是高可用Redis的基础,哨兵和集群都是在主从复制基础上实现高可用的。主从复制主要实现了数据的多机备份,以及对于读操作的负载均衡和简单的故障恢复。缺陷:故障恢复无法自动化:写操作无法负载均衡;存储能力受到单机的限制。

主机 IP地址 软件包
Master节点 192.168.153.10 redis-5.0.7.tar.gz
Slave1节点 192.168.153.20 redis-5.0.7.tar.gz
Slave2节点 192.168.153.30 redis-5.0.7.tar.gz
systemctl stop firewalld
setenforce 0

安装 Redis

NoSQL之 Redis配置与优化

修改Redis 配置文件(Master节点)

vim /etc/redis/6379.conf
bind 0.0.0.0                        #70,修改监听地址为0.0.0.0
daemonize yes                       #137行,开启守护进程
logfile /var/ log/redis_6379.log    #172行,指定日志文件目录
dir /var/lib/redis/6379             #264行,指定工作目录
appendonly yes                      #700行,修改为yes开启AOF持久化功能

/etc/init.d/redis_6379 restart

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

修改Redis 配置文件(Slave节点)

vim /etc/redis/6379.conf
bind 0.0.0.0                       #70行,修改监听地址为0.0.0.0
daemonize yes                      #137行,开启守护进程
logfile /var/log/redis_6379.log    #172行,指定日志文件目录
dir /var/lib/redis/6379            #264行,指定工作目录
replicaof 192.168.153.10 6379      #288行,指定要同步的Master节点IP和端口
appendonly yes                     #700行,开启AOF持久化功能

/etc/init.d/redis_6379 restart

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

验证主从效果

在Master节点上看日志

tail -f /var/log/redis_6379.log 

Redis 集群部署实验(主从复制、哨兵、集群)_第1张图片

在Master节点上验证从节点

redis-cli info replication

Redis 集群部署实验(主从复制、哨兵、集群)_第2张图片

二、搭建Redis 哨兵模式

哨兵的启动依赖于主从模式,所以须把主从模式安装好的情况下再去做哨兵模式,所有节点上都需要部署哨兵模式,哨兵模式会监控所有的Redis工作节点是否正常,当Master出现问题的时候,因为其他节点与主节点失去联系,因此会投票,投票过半就认为这个Master的确出现问题,然后会通知哨兵间,然后从Slaves中选取一个作为新的Master。

systemctl stop firewalld
setenforce 0

修改 Redis 哨兵模式的配置文件(所有节点)

vim /opt/redis-5.0.7/sentinel.conf
protected-mode no                                    #17行,关闭保护模式
port 26379                                           #21行,Redis哨兵默认的监听端口
daemonize yes                                        #26行,指定sentinel为后台启动
logfile "/var/1og/sentinel.log"                      #36行,指定日志存放路径
dir "/var/lib/redis/6379"                            #65行,指定数据库存放路径
sentinel monitor mymaster 192. 168.153.10 6379 2     #84行,修改,指定该哨兵节点监控192.168.153.10:6379这个主节点,该主节点的名称是mymaster,最后的2的含义与主节点的故障判定有关:至少需要2
个哨兵节点同意,才能判定主节点故障并进行故障转移
sentinel down-after-milliseconds mymaster 3000       #113行,判定服务器down掉的时间周期,默认30000毫秒(30 )
sentinel failover-timeout mymaster 180000            #146行,故障节点的最大超时时间为180000 (180)

启动哨兵模式

先启master,再启slave

cd /opt/redis-5.0.7/ 
redis-sentinel sentinel.conf &

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

查看哨兵信息

redis-cli -p 26379 info sentinel

Redis 集群部署实验(主从复制、哨兵、集群)_第3张图片

故障模拟

查看redis-server进程号

ps -ef | grep redis

在这里插入图片描述

杀死Master节点上redis-server的进程号

kill -9 1952       #Master节点上redis-server的进程号

Redis 集群部署实验(主从复制、哨兵、集群)_第4张图片

redis-cli -p 26379 info sentinel

Redis 集群部署实验(主从复制、哨兵、集群)_第5张图片

三、搭建 Redis 群集

一般来说,redis的集群需要6个节点,3主3从。
为方便起见,这里所有节点在同一台服务器上模拟:
以端口号进行区分:
3个主节点端口号:6000/6001/6002, 对应的从节点端口号:6003/6004/6005。

cd /etc/redis/
mkdir -p redis-cluster/redis600{
     0..5}

for w in {
     0..5}
do
cp /opt/redis-5.0.7/redis.conf  /etc/redis/redis-cluster/redis600$w
cp /opt/redis-5.0.7/src/redis-cli /opt/redis-5.0.7/src/redis-server /etc/redis/redis-cluster/redis600$w
done

Redis 集群部署实验(主从复制、哨兵、集群)_第6张图片
Redis 集群部署实验(主从复制、哨兵、集群)_第7张图片
Redis 集群部署实验(主从复制、哨兵、集群)_第8张图片

开启群集功能

其他5个文件夹的配置文件以此类推修改,注意6个端口都要不一样。
vim /etc/redis/redis-cluster/redis6000/redis.conf

#bind 127.0.0.1                       #69行,注释掉bind项,默认监听所有网卡
protected-mode no                     #88行,修改,关闭保护模式
port 6000                             #92行,修改,redis 监听端口,
daemonize yes                         #136行,开启守护进程,以独立进程启动
appendonly yes                        #700行,修改,开启AOF持久化
cluster -enabled yes                  #832行,取消注释,开启群集功能
cluster-config-file nodes-6379.conf   #840行,取消注释,群集名称文件设置
cluster-node-timeout 15000            #846行,取消注释群集超时时间设置

Redis 集群部署实验(主从复制、哨兵、集群)_第9张图片

在这里插入图片描述

启动redis节点

分别进入那六个文件夹,执行命令: redis-server redis.conf,来启动redis节点
cd /etc/redis/redis-cluster/redis6000
redis-server redis.conf
(或使用for循环来启动)
for i in {
     0..5}
do
cd /etc/redis/redis-cluster/redis600$i
redis-server redis.conf
done

Redis 集群部署实验(主从复制、哨兵、集群)_第10张图片

ps -ef | grep redis

Redis 集群部署实验(主从复制、哨兵、集群)_第11张图片

启动集群

redis-cli --cluster create 127.0.0.1:6000 127.0.0.1:6001 127.0.0.1:6002 127.0.0.1:6002 127.0.0.1:6003 127.0.0.1:6004 127.0.0.1:6005 --cluster-replicas 1

#六个实例分为三组,每组一主一从,前面的做主节点,后面的做从节点。下面交互的时候需要输入yes才可以创建。
–replicas 1表示每个主节点有1个从节点。
Redis 集群部署实验(主从复制、哨兵、集群)_第12张图片
Redis 集群部署实验(主从复制、哨兵、集群)_第13张图片

redis-cli -p 6000 -c         #加-c参数,节点之间就可以互相跳转	
cluster slots			     #查看节点的哈希槽编号范围

Redis 集群部署实验(主从复制、哨兵、集群)_第14张图片
Redis 集群部署实验(主从复制、哨兵、集群)_第15张图片

你可能感兴趣的:(数据库,redis,数据库,主从复制,哨兵)