基于Docker搭建Redis集群

微信扫一扫,分享到朋友圈

基于Docker搭建Redis集群

先决条件

安装docker、docker-compose.

docker-compose.yml文件

version: '3'
services:
redis-node01:
container_name: redis-node01
image: docker.io/redis:6.0.7-alpine
ports:
- "6378:6379"
volumes:
- /data/redis/data/master:/data
- /data/redis/config:/usr/local/etc/redis
networks:
- redis-network
restart: always
command: redis-server /usr/local/etc/redis/redis.conf --appendonly yes --appendfsync everysec
labels:
registory: 'office-registry'
editor: 'huyindu'
redis-node02:
container_name: redis-node02
image: docker.io/redis:6.0.7-alpine
ports:
- "6377:6379"
volumes:
- /data/redis/data/slave01:/data
- /data/redis/config:/usr/local/etc/redis
networks:
- redis-network
restart: always
command: redis-server /usr/local/etc/redis/redis.conf --appendonly yes --appendfsync everysec
labels:
registory: 'office-registry'
editor: 'huyindu'
redis-node03:
container_name: redis-node03
image: docker.io/redis:6.0.7-alpine
ports:
- "6376:6379"
volumes:
- /data/redis/data/slave02:/data
- /data/redis/config:/usr/local/etc/redis
networks:  - redis-network
restart: always
command: redis-server /usr/local/etc/redis/redis.conf --appendonly yes --appendfsync everysec
labels:
registory: 'office-registry'
editor: 'huyindu'
networks:
redis-network:
driver: bridge

修改Redis配置文件

我们先下载Redis的官方配置文件,下载地址: http://download.redis.io/redis-stable/redis.conf

修改部分配置

cluster-enabled yes #启用集群
bind 0.0.0.0    #默认127.0.0.1只能本地访问,改为0.0.0.0,所有主机都能访问

通过docker-compose安装redis节点

在docker-compose.yml所在目录下执行如下命令: docker-compose up -d
.执行后会运行三个redis节点,分别为redis-node01、redis-node02、redis-node03.

注:此时的三个redis节点是相互独立的,还不是集群。

将多个node节点组成集群

进入任意一个节点容器,执行一下命令,ip地址替换成你自身的节点IP,IP是生成的三个节点的容器内部IP,可以通过执行`docker

inspect docker容器id | grep Address`查看容器IP信息

redis-cli --cluster create 172.18.0.4:6379 172.18.0.3:6379 172.18.0.2:6379 -- cluster-replicas 0

在节点容器内输入 redis-cli -c
,查看集群信息 cluster info
,

cluster_state:ok  #<---如果此处为ok说明集群创建成功
cluster_slots_assigned:16384
cluster_slots_ok:16384
cluster_slots_pfail:0
cluster_slots_fail:0
cluster_known_nodes:3
cluster_size:3
cluster_current_epoch:3
cluster_my_epoch:1
cluster_stats_messages_ping_sent:218
cluster_stats_messages_pong_sent:217
cluster_stats_messages_sent:435
cluster_stats_messages_ping_received:215
cluster_stats_messages_pong_received:218
cluster_stats_messages_meet_received:2
cluster_stats_messages_received:435

此时通过set设置key-value的时候,就会将key-value添加到3个不同的节点中去了,三个节点的总key数就是全量key,每个节点仅存储各自的key集合,但是在集群不同节点都可以get到其他节点key的value值。

微信扫一扫,分享到朋友圈

基于Docker搭建Redis集群

小米投资西安睿芯微电子 布局芯片领域 完善生态链

上一篇

angularjs调后台接口,为啥返回结果必须是json?

下一篇

你也可能喜欢

基于Docker搭建Redis集群

长按储存图像,分享给朋友