[redis] Redis-Docker部署及主从复制配置
文章目录
Redis-Docker部署及主从复制配置
1.安装部署Redis
1).查看所有的Redis镜像
docker search redis
2).拉取你中意的Redis镜像(推荐star高的)
docker pull
em:
docker pull redis
3).创建挂载的目录
宿主机创建目录
|
|
宿主机上创建redis用户
|
|
4).配置文件
A.redis.conf配置文件
#根据文档-Redis(主从复制),
在/data/LPAPP/docker_redis_6379/etc下
vim redis.conf
复制粘贴(Redis(主从复制))=>5.完整redis.conf)配置内容
修改内容:
#启动端口
port 6379
#守护方式PID存放路径
pidfile /var/run/redis_6379.pid
#日志文件stdout是标准输出(输出屏幕或者发送给dev/null)
logfile “/var/log/redis/redis_6379.log”
#守护方式启动,docker必须为关闭
daemonize no
B.sentinel.conf配置文件
#根据文档-Redis(主从复制)生成以下配置文件
sentinel.conf #哨兵配置
5).创建容器并启动,端口6379
1.拉取镜像并创建容器并启动(挂载目录并从配置启动)
|
|
2.启动失败,查看日志
docker logs redis_6379
3.配置说明
-p 6379:6379:把容器内的6379端口映射到宿主机6379端口
-v /data/LPAPP/docker_redis_6379/data:/data:把宿主机配置好的redis.conf放到容器内的这个位置中
-v /root/redis/data:/data:把redis持久化的数据在宿主机内显示,做数据备份
redis-server /etc/redis/redis.conf -p 6379:这个是关键配置,让redis不是无配置启动,而是按照这个redis.conf的配置启动,并且端口为630
–appendonly yes:redis启动后数据持久化
–privileged=true 增加权限,解决权限不够,导致执行后docker ps 查不到redis
4.进入容器:
docker exec -it redis_6379 /bin/bash
5.进入redis
docker exec -it redis_6379 redis-cli -h localhost -p 6379 -a dy123456
6.主从复制
A.创建共享网络
docker network create –driver bridge docker_redis
docker netweork ls
docker network inspect docker_redis
B.端口:6379
|
|
C.端口:6380
A.创建目录
|
|
B.创建配置
|
|
C.创建并启动容器
|
|
D.端口:6381
A.创建目录
mkdir -p /data/LPAPP/docker_redis_6381/etc \
mkdir -p /data/LPAPP/docker_redis_6381/data \
mkdir -p /data/LPAPP/docker_redis_6381/log \
chmod -R 777 /data/LPAPP/docker_redis_6381/etc \
chmod -R 777 /data/LPAPP/docker_redis_6381/data \
chmod -R 777 /data/LPAPP/docker_redis_6381/log \
chown -Rf redis:redis docker_redis_6381
B.创建配置
cp /data/LPAPP/docker_redis_6380/etc/redis.conf /data/LPAPP/docker_redis_6381/etc/
vim redis.conf
修改内容:
#启动端口
port 6379
#守护方式PID存放路径
pidfile /var/run/redis_6381.pid
#日志文件stdout是标准输出(输出屏幕或者发送给dev/null)
logfile “/var/log/redis/redis_6381.log”
#守护方式启动,docker必须为关闭
daemonize no
#从服务器只读
slave-read-only yes
#从服务器关闭AOF备份
appendonly no
#注释save相关的RDB备份
#主服务器访问密码
masterauth dy123456
#主服务器IP和PORT
slaveof redis_6379 6379
C.创建并启动容器
docker run –privileged=true \
-p 6381:6379 \
-v /data/LPAPP/docker_redis_6381/data:/data \
-v /data/LPAPP/docker_redis_6381/etc:/etc/redis \
-v /data/LPAPP/docker_redis_6381/log:/var/log/redis \
–network docker_redis \
–name redis_6381 \
-itd redis redis-server /etc/redis/redis.conf
E.测试主从复制
#查看redis服务信息
docker exec -it redis_6379 redis-cli -p 6379 -a dy123456 info
#查看主从复制信息
docker exec -it redis_6379 redis-cli -p 6379 -a dy123456 info replication
#redis客户端,测试主从复制
docker exec -it redis_6379 redis-cli -h localhost -p 6379 -a dy123456
F.哨兵 sentinel
A.创建目录
mkdir -p /data/LPAPP/docker_redis_sentinel_26379/etc
mkdir -p /data/LPAPP/docker_redis_sentinel_26379/data
mkdir -p /data/LPAPP/docker_redis_sentinel_26379/log
chmod -R 777 /data/LPAPP/docker_redis_sentinel_26379/etc \
chmod -R 777 /data/LPAPP/docker_redis_sentinel_26379/data \
chmod -R 777 /data/LPAPP/docker_redis_sentinel_26379/log \
chown -Rf redis:redis docker_redis_sentinel_26379
B.创建配置
cd /data/LPAPP/docker_redis_sentinel_26379/etc
vim sentinel.conf
复制粘贴(Redis(主从复制))=>sentinel.conf配置)配置内容
修改的内容:
sentinel monitor redis_6379 172.18.0.2 6379 1
sentinel auth-pass redis_6379 dy123456
sentinel down-after-milliseconds redis_6379 10000
C.创建并启动容器
docker run –privileged=true \
-p 26379:26379 \
-v /data/LPAPP/docker_redis_sentinel_26379/data:/data \
-v /data/LPAPP/docker_redis_sentinel_26379/etc:/etc/redis \
-v /data/LPAPP/docker_redis_sentinel_26379/log:/var/log/redis \
–network docker_redis \
–name redis_sentinel_26379 \
-itd redis redis-sentinel /etc/redis/sentinel.conf
D.观察容器内哨兵情况
监听哨兵日志,停止主redis服务器,观看日志变化
docker exec -it redis_sentinel_26379 redis-cli -h localhost -p 26379 -a dy123456
文章作者 ZhangKQ
上次更新 2022-02-10