执行命令
我的官方群点击此处。
docker pull redis
启动三台机器,6379 容器作为主节点,其余作为从节点
├── conf│ ├── redis_6379.conf│ ├── redis_6380.conf│ ├── redis_6381.conf│ ├── ntinel_26379.conf│ ├── ntinel_26380.conf│ └── ntinel_26381.conf├── data_6379│ ├── appendonly.aof│ └── dump.rdb├── data_6380│ └── dump.rdb├── data_6381│ └── dump.rdb└── scripts ├── run.sh └── ntinel.sh
下载配置文件,具体配置另行调整即可
https://raw.githuburcontent.com/antirez/redis/5.0/redis.conf
port 26379dir "/etc/redisface"ntinel monitor mymaster 172.17.0.2 6379 1ntinel down-after-milliconds mymaster 60000ntinel failover-timeout mymaster 180000
#!/usr/bin/env basht -e# 脚本当前目录cpath=$(cd $(dirname "$0") || exit; pwd)# 根目录dirpath=$(dirname "$cpath")# 获取端口port="$1"if [[ ! "$port" ]]; then port=6379fi# 创建数据目录mkdir -p "$dirpath"/data_"$port"# 删除已启动服务containerid=$(docker ps -a | grep "redis_$port" | awk -f' ' '{print $1}')if [[ "$containerid" ]]; then echo "正在删除服务:${containerid}" docker rm -f ${containerid} > /dev/nullfi# 启动服务docker run -itd --privileged=true -p "$port":6379 --name redis_"$port" \-v="$dirpath"/conf/redis_"$port".conf:/etc/redis/redis.conf \-v="$dirpath"/data_"$port":/data \redis \redis-rver /etc/redis/redis.conf
#!/usr/bin/env basht -e# 脚本当前目录cpath=$(cd $(dirname "$0") || exit; pwd)# 根目录dirpath=$(dirname "$cpath")# 设置端口port=$1if [[ ! "$port" ]]; then port=26379fi# 删除已启动服务containerid=$(docker ps -a | grep "ntinel_$port" | awk -f' ' '{print $1}')if [[ "$containerid" ]]; then echo "正在删除服务:${containerid}" docker rm -f ${containerid} > /dev/nullfi# 启动服务docker run -itd --privileged=true -p "$port":26379 --name "ntinel_$port" \-v="${dirpath}/conf/ntinel_${port}.conf":/etc/redis/ntinel.conf \-w=/etc/redis/ \redis \redis-rver /etc/redis/ntinel.conf --ntinel
启动 ntinel 服务如果如下错误
1:x 10 may 2020 08:10:48.234 # warning: the tcp backlog tting of 511 cannot be enforced becau /proc/sys/net/core/somaxconn is t to the lower value of 128.1:x 10 may 2020 08:10:48.235 # ntinel config file /etc/redis/ntinel.conf is not writable: permission denied. exiting...
ntinel.sh
脚本修改目录权限docker run -it --rm --privileged=true -v=/root/docker-config/redis/conf/:/etc/redis/ redis chown -r redis /etc/redis
主要语句:==chown -r redis /etc/redis==
root@desktop-q13ei52:~/docker-config/redis# docker run -it --rm --privileged=true -v=/root/docker-config/redis/conf/:/etc/redis/ redis ls -l /etc/redis/total 204-rw-r--r-- 1 redis root 61793 may 10 07:41 redis_6379.conf-rw-r--r-- 1 redis root 61864 余额宝有什么风险may 10 12:52 redis_6380.conf-rw-r--r-- 1 redis root 61890 may 10 12:52 redis_6381.conf-rw-r--r-- 1 redis root 459 may 10 12:52 ntinel_26379.conf-rw-r--r-- 1 redis root 161 may 10 07:56 ntinel_26380.conf-rw-r--r-- 1 redis root 161 may 10 10:16 ntinel_26381.conf
sh scripts/run.sh 6379
sh scripts/run.sh 6380sh scripts/run.sh 6381
docker exec -it redis_6380 bashdocker exec -it redis_6381 bash# 进入容器后执行命令redis-cli# 设置为从服务slaveof 172.17.0.2 6379
效果图
sh scripts/ntinel.sh
效果图
root@desktop-q13ei52:~/docker-config/redis# docker pscontainer id image command created status ports 衡的形近字 name518580ce8eb redis "docker-entrypoint.s…" about a minute ago up about a minute 6379/tcp, 0.0.0.0:26379->26379/tcp ntinel_26379e2ef253d3513 redis "docker-entrypoint.s…" 2 hours ago up 2 hours 0.0.0.0:6381->6379/tcp 英伦对决评价 redis_638115fdc81eb530 redis "docker-entrypoint.s…" 2 hours ago up 2 hours 0.0.0.0:6380->6379/tcp redis_638077f4fdc84cb1 redis "docker-entrypoint.s…" 2 hours ago up 2 hours 0.0.0.0:6379->6379/tcp redis_6379
执行命令:docker stop redis_6379
1:x 10 may 2020 12:52:15.634 # +sdown master mymaster 172.17.0.2 63791:x 10 may 2020 12:52:15.634 # +odown master mymaster 172.17.0.2 6379 #quorum 1/11:x 10 may 2020 12:52:15.634 # +new-epoch 11:x 10 may 2020 12:52:15.634 # +try-failover master mymaster 172.17.0.2 63791:x 10 may 2020 12:52:15.649 # +vote-for-leader 6905a137af7baedbdfce4978d1d9126fdaad4faf 11:x 10 may 2020 12:52:15.649 # +elected-leader master mymaster 172.17.0.2 63791:x 10 may 2020 12:52:15.649 # +failover-state-lect-slave master mymaster 172.17.0.2 63791:x 10 may 2020 12:52:15.725 # +lected-slave slave 172.17.0.3:6379 172.17.0.3 6379 @ mymaster 172.17.0.2 63791:x 10 may 2020 12:52:15.725 * +failover-state-nd-slaveof-noone slave 172.17.0.3:6379 172.17.0.3 6379 @ mymaster 172.17.0.2 63791:x 10 may 2020 12:52:15.781 * +failover-state-wait-promotion slave 172.17.0.3:6379 172.17.0.3 6379 @ mymaster 172.17.0.2 63791:x 10 may 2020 12:52:16.798 # +promoted-slave slave 172.17.0.3:6379 172.17.0.3 6379 @ mymaster 172.17.0.2 63791:x 10 may 2020 12:52:16.798 # +failover-state-reconf-slaves master mymaster 172.17.0.2 63791:x 10 may 2020 12:52:16.845 * +slave-reconf-nt slave 172.17.0.4:6379 172.17.0.4 6379 @ mymaster 172.17.0.2 63791:x 10 may 2020 12:52:17.837 * +slave-reconf-inprog slave 172.17.0.4:6379 172.17.0.4 6379 @ mymaster 172.17.0.2 63791:x 10 may 2020 12:52:17.837 * +slave-reconf-done slave 172.17.0.4:6379 172.17.0.4 6379 @ mymaster 172.17.0.2 63791:x 10 may 2020 12:52:17.937 # +failover-end master mymaster 172.17.0.2 6379# 生成执行故障转移1:x 10 may 2020 12:52:17.937 # +switch-master mymaster 172.17.0.2 6379 172.17.0.3 63791:x 10 may 2020 12:52:17.938 * +slave slave 172.17.0.4:6379 172.17.0.4 6379 @ mymaster 172.17.0.3 63791:x 10 may 2020 12:52:17.938 * +slave slave 172.17.0.2:6379 172.17.0.2 6379 @ mymaster 172.17.0.3 63791:x 10 may 2020 12:53:18.010 # +sdown slave 172.17.0.2:6379 172.17.0.2 6379 @ mymaster 172.17.0.3 6379
注意
已经掉线的172.17.0.2:6379
主节点重新上线后将自动切换为从服务
更多学习内容请访问:
腾讯t3-t4标准精品php架构师教程目录大全,只要你看完保证薪资上升一个台阶(持续更新)
本文发布于:2023-04-08 17:09:32,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/1b444673d88557586984088c305f522c.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:Docker 快速搭建主从 + 哨兵监控.doc
本文 PDF 下载地址:Docker 快速搭建主从 + 哨兵监控.pdf
留言与评论(共有 0 条评论) |