侧边栏壁纸
博主头像
会飞的大象博主等级

爱运动的程序猿

  • 累计撰写 126 篇文章
  • 累计创建 158 个标签
  • 累计收到 0 条评论
标签搜索

目 录CONTENT

文章目录

docker 部署redis主从与哨兵 6.0.9

会飞的大象
2022-12-21 / 0 评论 / 0 点赞 / 803 阅读 / 999 字

基础知识

#redis配置

1)bind 127.0.0.1 :注释掉这部分,这是限制 redis 只能本地访问
2)protected-mode no :默认是yes,开启保护模式,限制为本地访问
3)requirepass 123456 :配置 redis 连接密码,默认是注释的
4)dir ./ :更改本地redis数据库存放文件夹(可选)
5)appendonly yes :redis 持久化,开启了这个 redis 就不会每次重启时自动清空了

#docker启动redis命令
1)–name:给容器起一个名字;
2)-p:端口映射(宿主机端口:容器端口);
3)-v:挂载自定义配置(自定义配置:容器内部配置);
#docker run -itd -p 6379:6379 --name lhjredis -v /docker/redis/conf/redis.conf:/etc/redis/redis.conf -v /docker/redis/data:/data redis redis-server /etc/redis/redis.conf
本命令共有两个挂载:Linux 上自定义的 redis 配置(/docker/redis/conf/redis.conf)挂载到容器内 redis 应用的默认配置文件 /etc/redis/redis.conf;Linux 上自定义的数据存放目录(/docker/redis/data)挂载到容器内 redis 应用的默认数据存放目录(/data)。这样 docker 容器内的 redis 应用会使用 Linux 上自定义的配置文件,docker 容器内的 redis 应用的数据会放到 Linux 上自定义的数据存放目录。
4)-d:后台运行;
5)redis-server --appendonly yes: 在容器执行 redis-server 启动命令,并打开 redis 持久化配置;

启动redis主从

#最终部署redis主从执行命令为

docker run --name redis6379 --net=host -v $PWD/redis6379 -d redis:latest redis-server --port 6379  --requirepass 123456 --appendonly yes --bind 0.0.0.0  --protected-mode no
docker run --name redis6380 --net=host -v $PWD/redis6380 -d redis:latest redis-server --slaveof 192.168.0.23 6379 --port 6380 --requirepass 123456 --appendonly yes --bind 0.0.0.0  --protected-mode no
docker run --name redis6381 --net=host -v $PWD/redis6381 -d redis:latest redis-server --slaveof 192.168.0.23 6379 --port 6381 --requirepass 123456 --appendonly yes --bind 0.0.0.0  --protected-mode no

部署redis哨兵

#挂载本地配置文件 -v $PWD/sentinel-26379.conf:/usr/local/etc/redis/sentinel.conf
新建文件 sentinel-26379.conf、sentinel-26380.conf、sentinel-26381.conf

port 26379
sentinel monitor mymaster 192.168.0.23 6379 1 
sentinel down-after-milliseconds mymaster 5000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 180000
bind 0.0.0.0
protected-mode no
#daemonize yes
#dir "/var/log/sentinel"
#logfile "/var/log/sentinel/26379.log"
port 26380
sentinel monitor mymaster 192.168.0.23 6379 1 
sentinel down-after-milliseconds mymaster 5000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 180000
bind 0.0.0.0
protected-mode no
#daemonize yes
#dir "/var/log/sentinel"
#logfile "/var/log/sentinel/26379.log"
port 26381
sentinel monitor mymaster 192.168.0.23 6379 1 
sentinel down-after-milliseconds mymaster 5000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 180000
bind 0.0.0.0
protected-mode no
#daemonize yes
#dir "/var/log/sentinel"
#logfile "/var/log/sentinel/26379.log"

哨兵启动

docker run --name sentinel-26379 --net=host -v $PWD/sentinel-26379.conf:/usr/local/etc/redis/sentinel.conf  -d redis:latest redis-sentinel /usr/local/etc/redis/sentinel.conf 
docker run --name sentinel-26380 --net=host -v $PWD/sentinel-26380.conf:/usr/local/etc/redis/sentinel.conf  -d redis:latest redis-sentinel /usr/local/etc/redis/sentinel.conf 
docker run --name sentinel-26381 --net=host -v $PWD/sentinel-26381.conf:/usr/local/etc/redis/sentinel.conf  -d redis:latest redis-sentinel /usr/local/etc/redis/sentinel.conf 

全部完整启动命令

完整启动命令 加上这个话将会加上密码认证 --requirepass 123456

docker run --name redis6379 --net=host -v $PWD/redis6379 -d redis:latest redis-server --port 6379   --appendonly yes --bind 0.0.0.0  --protected-mode no
docker run --name redis6380 --net=host -v $PWD/redis6380 -d redis:latest redis-server --slaveof 192.168.0.23 6379 --port 6380 --appendonly yes --bind 0.0.0.0  --protected-mode no
docker run --name redis6381 --net=host -v $PWD/redis6381 -d redis:latest redis-server --slaveof 192.168.0.23 6379 --port 6381 --appendonly yes --bind 0.0.0.0  --protected-mode no
docker run --name sentinel-26379 --net=host -v $PWD/sentinel-26379.conf:/usr/local/etc/redis/sentinel.conf  -d redis:latest  redis-sentinel /usr/local/etc/redis/sentinel.conf 
docker run --name sentinel-26380 --net=host -v $PWD/sentinel-26380.conf:/usr/local/etc/redis/sentinel.conf  -d redis:latest  redis-sentinel /usr/local/etc/redis/sentinel.conf 
docker run --name sentinel-26381 --net=host -v $PWD/sentinel-26381.conf:/usr/local/etc/redis/sentinel.conf  -d redis:latest  redis-sentinel /usr/local/etc/redis/sentinel.conf 
0

评论区