您当前的位置: 首页 >  docker

蔚1

暂无认证

  • 0浏览

    0关注

    4753博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

docker快速搭建redis集群

蔚1 发布时间:2020-04-24 23:30:38 ,浏览量:0

适合人群:码农

现在都在搞高并发,高可用,那么缓存集群必不可少

测试项目地址:https://github.com/shaohuizhe/redis.git

1、下载 redis.conf

下载地址:https://github.com/antirez/redis/blob/unstable/redis.conf

2、修改 redis.conf
cluster-enabled yes  #开启集群功能port 6391  #设置节点端口cluster-node-timeout 5000  #集群节点超时时间,单位毫秒cluster-config-file "nodes-6391.conf"  #集群内部配置文件cluster-announce-ip 192.168.1.102  #集群 ip 地址cluster-announce-port 6391  #集群数据端口cluster-announce-bus-port 16391 #集群总线端口,用于节点之间通信
3、编写 docker-compose.yml
version: "3.6"services:  redis-master:    # 基础镜像    image: redis:latest    # 容器服务名    container_name: redis-master    # 工作目录    working_dir: /config    # 环境变量    environment:      # 跟 config/nodes-6391.conf 里的配置一样的端口      - PORT=6391    # 映射端口,对外提供服务    ports:      # redis 的服务端口      - "6391:6391"      # redis 集群监控端口      - "16391:16391"    # 标准输入打开    stdin_open: true    # docker 网络设置    networks:      redis-master:        ipv4_address: 172.50.0.2    tty: true    # 拥有容器内命令执行的权限    privileged: true    # 映射数据卷,配置目录    volumes: ["/c/project/docker/redis/config:/config"]    # 设置服务默认的启动程序    entrypoint:      - /bin/bash      - redis.sh  redis-slave:    image: redis:latest    container_name: redis-slave    working_dir: /config    environment:      - PORT=6392    ports:      - "6392:6392"      - "16392:16392"    stdin_open: true    networks:      redis-slave:        ipv4_address: 172.30.0.2    tty: true    privileged: true    volumes: ["/c/project/docker/redis/config:/config"]    entrypoint:      - /bin/bash      - redis.shnetworks:  redis-master:    # 创建一个 docker 的桥接网络    driver: bridge    ipam:      driver: default      config:        -          subnet: 172.50.0.0/16  redis-slave:    driver: bridge    ipam:      driver: default      config:        -          subnet: 172.30.0.0/16
4、编写 redis 默认的启动脚本

创建文件 config/redis.sh,内容如下:

redis-server  /config/nodes-${PORT}.conf

目录结构: 在这里插入图片描述这是一台宿主机部署两个节点的情况,六台机子则只需要一个 nodes-xx.conf 配置文件, docker-compose.yml 也只需要写一个节点就行

5、启动节点

启动服务命令如下:

docker-compose up -d

查看服务运行:

docker ps

在这里插入图片描述注意:搭建 redis 集群至少需要 6 个节点,这里一个虚拟机当两个用,将上面所有文件 copy 到另外两台虚拟机初始化集群(这一步开始命令须在 redis5.0 及以上版本运行)。

6、创建 3 主 3 从的 redis 集群:
docker exec -it redis-master /bin/bashroot@f294962ac663:/config# redis-cli -a yourpassword --cluster create 192.168.1.102:6391 192.168.1.102:6392 192.168.1.104:6391 192.168.1.104:6392 192.168.1.106:6391 192.168.1.106:6392 --cluster-replicas 1

在这里插入图片描述查看节点信息:在这里插入图片描述

7、测试集群

执行测试类:

在这里插入图片描述查看 redis:在这里插入图片描述可以看到插入 6 个 key 第一台 redis 只插入了 3 条数据,第二台 2 条数据,根据哈希值来匹配槽位,redis 集群共有 16384 个槽位

阅读全文: http://gitbook.cn/gitchat/activity/5ea291ccc312a95b62b72e2b

您还可以下载 CSDN 旗下精品原创内容社区 GitChat App ,阅读更多 GitChat 专享技术内容哦。

FtooAtPSkEJwnW-9xkCLqSTRpBKX

关注
打赏
1560489824
查看更多评论
立即登录/注册

微信扫码登录

0.0554s