redis单节点多实例部署-主从模式-哨兵模式

本次实验由于资源限制,采用单节点多实例的模式部署集群。
多节点模式搭建原理类似。

文章目录

    • redis 主从模式
      • 1、编译安装redis
      • 2、配置文件
      • 3、启动
      • 4、验证:
        • ①、登录客户端
        • ②、主从验证:
        • ③、数据一致性
    • redis哨兵模式
      • 1、配置文件
      • 2、启动 Redis 哨兵:
      • 3、验证
        • ①、端口及进程
        • ②、验证主从
        • ③、验证哨兵状态

主从模式 端口
7001
7002
7003
哨兵模式 端口
6379
6378
哨兵1 26379
哨兵2 26380

redis 主从模式

要求1主2从。 端口7001-7003 ,需要手动部署
要求:端口监听正常,服务进程正常,能正常登陆客户端

1、编译安装redis

[root@docker_project02 redis]# wget http://download.redis.io/releases/redis-6.2.7.tar.gz
[root@docker_project02 redis]# tar xf redis-6.2.7.tar.gz -C /data/redis
[root@docker_project02 redis]# yum install gcc
cd /data/redis/redis-6.2.7 &&  make
cd /data/redis/redis-6.2.7/src && make install

2、配置文件

准备一份主库配置文件7001.conf,端口为7001

# 包含文件(redis-base.conf,文件从redis安装目录中拷贝的)
include /data/redis/redis-6.2.7/redis.conf
# bind 绑定地址修改,外网能访问
bind 0.0.0.0
# 关闭保护模式
protected-mode no 
# 端口
port 7001
# 后台运行
daemonize yes
# pid文件
pidfile redis_7001.pid
# 日志文件
logfile "/data/redis/7001/log/redis-7001.log"
#节点名称,从节点不需要
masterauth mymaster
# 认证密码,最好两个都写,防止无法通讯
requirepass 123456
masterauth 123456
# 最大内存10M,一般为机器内存的3/4
maxmemory 10mb
# 内存达到最大时策略,可选择其他策略
maxmemory-policy volatile-lru
# 目录
dir /data/redis/7001
# 快照文件
dbfilename dump-7001.rdb
#开启持久化机制
appendonly yes
appendfsync always

准备两份从库配置文件,端口是7002,7003,在主配置文件的基础上,修改相应配置

# 包含文件(redis-base.conf,文件从redis安装目录中拷贝的)
include /data/redis/redis-6.2.7/redis.conf
# bind 绑定地址修改,外网能访问
bind 0.0.0.0
# 关闭保护模式
protected-mode no 
# 端口
port 7002
# 后台运行
daemonize yes
# pid文件
pidfile redis_7002.pid
# 日志文件
logfile "/data/redis/7002/log/redis-7002.log"
# 认证密码
requirepass 123456
masterauth 123456
# 最大内存10M,一般为机器内存的3/4
maxmemory 10mb
# 内存达到最大时策略,可选择其他策略
maxmemory-policy volatile-lru
# 目录
dir /data/redis/7002
# 快照文件
dbfilename dump-7002.rdb
#开启持久化机制
appendonly yes
appendfsync always
# 从节点要跟随的主节点
replicaof 192.168.1.214 7001
# 主节点认证密码,如果设置了密码,就要设置
masterauth 123456
# 从库开放写的权限
slave-read-only no

目录结构如下:
redis单节点多实例部署-主从模式-哨兵模式_第1张图片

3、启动

先启动主节点,然后启动从节点

主节点启动命令: /data/redis/redis-6.2.7/src/redis-server /data/redis/7001/7001.conf
 
从节点启动命令:
   /data/redis/redis-6.2.7/src/redis-server /data/redis/7002/7002.conf
   /data/redis/redis-6.2.7/src/redis-server /data/redis/7003/7003.conf

查看进程和端口是否启动
redis单节点多实例部署-主从模式-哨兵模式_第2张图片

4、验证:

①、登录客户端

redis单节点多实例部署-主从模式-哨兵模式_第3张图片

②、主从验证:

查看7001实例的info
redis单节点多实例部署-主从模式-哨兵模式_第4张图片

7002及7003的信息
redis单节点多实例部署-主从模式-哨兵模式_第5张图片
redis单节点多实例部署-主从模式-哨兵模式_第6张图片

③、数据一致性

7001插入数据,7002,7003都可以查到
redis单节点多实例部署-主从模式-哨兵模式_第7张图片
从其他库插入数据
在这里插入图片描述

redis哨兵模式

要求:主从模式,路径需要区分开来,主节点端口6379 从节点端口6378
端口监听正常,服务进程正常,能正常登陆客户端,主节点插入数据,要能在从节点查询主节点插入的数据。主节点发生故障后,从节点插入新的数据,并且恢复主节点,要能在主节点查询从节点插入的新数据
目录结构:
延续使用上文redis的主从配置文件,修改相应端口来启动redis服务。仅需开启两个。
redis单节点多实例部署-主从模式-哨兵模式_第8张图片

1、配置文件

在主节点上和每个从节点上,创建一个哨兵配置文件,例如 7001-st.conf,并配置如下:不能有注释
port 26379   #端口需要修改
daemonize yes  #后台运行
pidfile /data/redis/7001/redis-sentinel.pid 
logfile "/data/redis/7001/log/sentinel_26379.log"
dir /data/redis/7001/
sentinel monitor mymaster 192.168.1.214 6379 2 #监控的Redis主节点6379,2个Redis Sentinel实例都认为主节点不可用时才会进行故障转移
sentinel down-after-milliseconds mymaster 30000  #定义了监控的主节点在多长时间没有回应后被认为是不可用的阈值。30000毫秒(30秒)
sentinel failover-timeout mymaster 180000  #定义了主节点故障转移的超时时间,即当主节点在一定时间内无法提供服务时,Sentinel会执行故障转移操作。这里设置为180000毫秒(180秒)。
sentinel deny-scripts-reconfig yes #指定是否允许在运行时修改Sentinel的配置。当设置为yes时,不允许修改配置。
sentinel auth-pass mymaster 123456  #必须项。连接主节点的密码,否则无法访问。

2、启动 Redis 哨兵:

先开启主节点的哨兵,再开从节点的哨兵

[root@docker_project01 src]# /data/redis/redis-6.2.7/src/redis-server /data/redis/7001/7001-st.conf --sentinel
[root@docker_project01 src]# /data/redis/redis-6.2.7/src/redis-server /data/redis/7002/7002-st.conf --sentinel

3、验证

①、端口及进程

在这里插入图片描述

②、验证主从

redis单节点多实例部署-主从模式-哨兵模式_第9张图片
redis单节点多实例部署-主从模式-哨兵模式_第10张图片

③、验证哨兵状态

redis单节点多实例部署-主从模式-哨兵模式_第11张图片

手动关闭6379实例,主节点自动变更为6378实例
redis单节点多实例部署-主从模式-哨兵模式_第12张图片

在6378插入数据
redis单节点多实例部署-主从模式-哨兵模式_第13张图片

手动启动6379,并且查询cwc的值
redis单节点多实例部署-主从模式-哨兵模式_第14张图片

你可能感兴趣的:(redis,bootstrap,数据库,缓存,运维)