Redis
Redis集群部署实战
拓扑图:
部署步骤:
1.准备一台干净的docker,或者清空之前所有的容器
docker rm -f $(docker ps -qa)
2.创建redis集群自定义网络。
docker network create --subnet 172.38.0.0/16 --gateway 172.38.0.1 redis
docker network ls
NETWORK ID NAME DRIVER SCOPE
0a89a821a5ae bridge bridge local
6a92fb7176ad host host local
f1e490a31f74 mynet bridge local
7092207adda3 none null local
61b7c675593f redis bridge local
3.通过脚本创建六个redis配置
[root@localhost ~]# ls /mydata/redis/
node-1 node-2 node-3 node-4 node-5 node-6
4.通过脚本启动容器
for port in $(seq 1 6); \
do \
docker run -p 637${port}:6379 -p 1637${port}:16379 --name redis-${port} \
-v /mydata/redis/node-${port}/data:/data \
-v /mydata/redis/node-${port}/conf/redis.conf:/etc/redis/redis.conf \
-d --net redis --ip 172.38.0.1${port} redis redis-server /etc/redis/redis.conf
done
通过命令查看
5.进入redis-1:
[root@localhost ~]# docker exec -it redis-1 /bin/bash
root@4cab74ee7258:/data# ls
appendonly.aof nodes.conf
6.创建集群
redis-cli --cluster create 172.38.0.11:6379 172.38.0.12:6379 172.38.0.13:6379 172.38.0.14:6379 172.38.0.15:6379 172.38.0.16:6379 --cluster-replicas 1
7.连接集群
root@4cab74ee7258:/data# redis-cli -c #连接集群
127.0.0.1:6379> cluster info #查看集群信息
cluster_state:ok
cluster_slots_assigned:16384
cluster_slots_ok:16384
cluster_slots_pfail:0
cluster_slots_fail:0
cluster_known_nodes:6
cluster_size:3 #3个主从
cluster_current_epoch:7
cluster_my_epoch:1
cluster_stats_messages_ping_sent:6942
cluster_stats_messages_pong_sent:6986
cluster_stats_messages_fail_sent:5
cluster_stats_messages_auth-ack_sent:1
cluster_stats_messages_sent:13934
cluster_stats_messages_ping_received:6981
cluster_stats_messages_pong_received:6942
cluster_stats_messages_meet_received:5
cluster_stats_messages_fail_received:1
cluster_stats_messages_auth-req_received:1
cluster_stats_messages_received:13930
127.0.0.1:6379> cluster nodes #查看节点
#可以看到三组三从的信息
127.0.0.1:6379> set a b #设置一个key-v
-> Redirected to slot [15495] located at 172.38.0.13:6379
OK #redis-3写入
8.然后关闭redis-3测试是否能过够达到负载均衡的效果。
docker stop redis-3
9.测试高可用,获取key值
127.0.0.1:6379> get a
-> Redirected to slot [15495] located at 172.38.0.14:6379
"b"
#此时显示redis4提供值,说明高可用配置成功