基于docker安装redis、搭建集群–配置主从哨兵

1、安装docker

这里不详细介绍了

2、安装redis

这里我准备了三台机器

192.168.1.104

192.168.1.106

192.168.1.107

在指定目录创建redis.conf文件,我这里的目录是/zhouyx/redis/redis.conf

wget -c http://download.redis.io/redis-stable/redis.conf

image-20220417131807455

pull redis镜像

docker pull redis
#默认为latest版本

image-20220417132752542

image-20220417134900804

三台机器都启动redis

#/zhouyx/redis/redis.conf为之前创建redis.conf的目录
docker run --name redis -v /zhouyx/redis/redis.conf:/usr/local/etc/redis/redis.conf -d -p 6379:6379 -p 26379:26379 redis

参数详解:
 docker:死记硬背。
 run:启动容器固定写法
 --name:自定义启动容器名称
 -v 主机redis.conf 和redis容器做映射
 -d 后台启动
 -p 端口映射 6379是redis端口 26379是哨兵端口
 redis:镜像名称

image-20220417152818746

进入容器内部命令:docker exec -it 容器id/容器名称 /bin/bash(固定写法记住就好了)

docker exec -it redis /bin/bash

进入容器输入:redis-cli 就能对redis进行操作了
image-20220417154354663

3、配置主从

此时我们输入 info replication 查看,三台机器都为master节点

image-20220417154800111
此时这样设置:

  • 192.168.1.104 (master)主
  • 192.168.1.106 (slave)从
  • 192.168.1.107 (slave)从
#绑定主redis信息:slaveof 主ip 主端口
#192.168.1.106与192.168.1.107 绑定主redis 192.168.1.104 6379
slaveof 192.168.1.104 6379

设置好后 info replication 查看三台redis节点信息
192.168.1.104:
image-20220417155531579
192.168.1.106:
image-20220417155631398
192.168.1.107:
image-20220417155751204

主节点存取数据,从节点能同步数据。

image-20220417155936308

image-20220417155957478

从节点此时不能存数据

image-20220417160241616

至此我们redis主从就搭建完毕了。

4、配置哨兵

1、进入三台redis容器:
	进入三台redis容器:docker exec -it 容器id/容器名称 /bin/bash
2、进入容器根目录	
3、创建哨兵配置文件:vim sentinel.conf(三台容器哨兵配置一模一样)
4.输入:
port:26379 #哨兵端口号 一定要和启动命令映射第二个端口号一致
daemonize yes  #后台启动
logfile "/var/log/sentinel_log.log"
sentinel monitor mymaster 主节点ip 主节点端口 2
5、依次三台在sentinel.conf 配置文件同一级目录执行:redis-sentinel sentinel.conf

#进入三台redis容器:
docker exec -it redis /bin/bash
#进入容器根目录
cd /
#创建哨兵配置文件:
touch sentinel.conf
#输入:
echo "daemonize yes" > /sentinel.conf
echo "logfile \"/var/log/sentinel_log.log\"" >> /sentinel.conf
echo "sentinel monitor mymaster 192.168.1.104 6379 2" >> /sentinel.conf
#在三台在sentinel.conf 配置文件同一级目录启动
redis-sentinel sentinel.conf

image-20220417164147100

参考文档:https://www.cnblogs.com/kingyifan/p/11721422.html