连接Redis进行测试
# 使用集群方式连接Redis /opt/redis/redis_cluster/redis1/bin/redis-cli -h 162.14.74.11 -p 7001 -c # 使用密码认证 162.14.74.11:7001> auth abcAbc123. OK # 使用cluster nodes查询集群节点 162.14.74.11:7001> cluster nodes 830c13e63211ef4c4dc2668581895f78b45ff06c 162.14.74.11:7006@17006 slave 478f97fc6bc954daadc1aeed49bd90b5b8f921a9 0 1662994023610 6 connected 95bb2b273537ec44879178d80fec968a4a02d151 10.0.0.5:7001@17001 myself,master - 0 1662994021000 1 connected 0-5460 478f97fc6bc954daadc1aeed49bd90b5b8f921a9 162.14.74.11:7003@17003 master - 0 1662994022610 3 connected 10923-16383 840c4b75f4603e1e1baa3189154adc9c2dc9abc7 162.14.74.11:7002@17002 master - 0 1662994024612 2 connected 5461-10922 b7cefab8fbce66cf7784b52a18c1d07fbc485e8d 162.14.74.11:7004@17004 slave 95bb2b273537ec44879178d80fec968a4a02d151 0 1662994022000 4 connected 9d6cc857350689586336dfd6d82f0fbb41dd8450 162.14.74.11:7005@17005 slave 840c4b75f4603e1e1baa3189154adc9c2dc9abc7 0 1662994023000 5 connectedRedis集群搭建(Docker方式)
使用Docker集群也是一样的道理 。我们使用host模式(直接使用本机IP) , 实现集群 。
准备工作
# 创建docker方式redis集群文件夹 mkdir -p /opt/redis/docker_redis_cluster # 拷贝准备好的文件到该目录 # 如果没有安装tree 先安装 yum install tree -y
使用tree查看目录结构, 只需要创建配置文件目录进行挂载修改 , data和logs会自动挂载 。
. ├── docker-compose.yml ├── redis1 │ └── conf │ └── redis.conf ├── redis2 │ └── conf │ └── redis.conf ├── redis3 │ └── conf │ └── redis.conf ├── redis4 │ └── conf │ └── redis.conf ├── redis5 │ └── conf │ └── redis.conf └── redis6 └── conf └── redis.conf
再使用ls -al查询隐藏文件
[root@VM-0-5-centos docker_redis_cluster]# ls -al total 40 drwxr-xr-x 8 root root 4096 Sep 14 21:29 . drwxr-xr-x 8 root root 4096 Sep 12 22:49 .. -rw-r--r-- 1 root root 2953 Sep 14 21:29 docker-compose.yml -rw-r--r-- 1 root root 24 Sep 13 21:23 .env drwxr-xr-x 3 root root 4096 Sep 14 21:31 redis1 drwxr-xr-x 3 root root 4096 Sep 14 21:31 redis2 drwxr-xr-x 3 root root 4096 Sep 14 21:31 redis3 drwxr-xr-x 3 root root 4096 Sep 14 21:31 redis4 drwxr-xr-x 3 root root 4096 Sep 14 21:31 redis5 drwxr-xr-x 3 root root 4096 Sep 14 21:31 redis6
可以看到我们准备了docker-compose.yml, .env, redis.conf三种文件 。只需要修改.env的变量 , 就可以通过docker-compose实现一键集群了 。
.env
# 服务器的IP地址 公网IP 注意开启防火墙端口 和 公网的安全组 SERVICE_IP=162.14.74.11 # 根目录 BASE_DIR=/opt/redis/docker_redis_cluster
编写docker-compose.yml
version: '2' services: redis_cluster: image: redis hostname: redis_cluster container_name: redis_cluster command: 'redis-cli --cluster create ${SERVER_IP}:7001 ${SERVER_IP}:7002 ${SERVER_IP}:7003 ${SERVER_IP}:7004 ${SERVER_IP}:7005 ${SERVER_IP}:7006 --cluster-yes --cluster-replicas 1 -a abcAbc123.' depends_on: - redis1 - redis2 - redis3 - redis4 - redis5 - redis6 privileged: true environment: TZ: Asia/Shanghai network_mode: host redis1: # 镜像名 image: redis # 重启策略 失败后总是重启 restart: always # 主机名 hostname: redis1 # 容器名 container_name: redis1 # 是否有权限 true privileged: true # 网络模式 host表示与宿主机使用相同的IP , docker中的IP发生变化 network_mode: host environment: TZ: Asia/Shanghai volumes: - ${BASE_DIR}/redis1/data:/data - ${BASE_DIR}/redis1/conf/redis.conf:/etc/redis/redis.conf - ${BASE_DIR}/redis1/logs:/logs command: [ "redis-server","/etc/redis/redis.conf" ] redis2: image: redis restart: always hostname: redis2 container_name: redis2 privileged: true network_mode: host environment: TZ: Asia/Shanghai volumes: - ${BASE_DIR}/redis2/data:/data - ${BASE_DIR}/redis2/conf/redis.conf:/etc/redis/redis.conf - ${BASE_DIR}/redis2/logs:/logs command: [ "redis-server","/etc/redis/redis.conf" ] redis3: image: redis restart: always hostname: redis3 container_name: redis3 privileged: true network_mode: host environment: TZ: Asia/Shanghai volumes: - ${BASE_DIR}/redis3/data:/data - ${BASE_DIR}/redis3/conf/redis.conf:/etc/redis/redis.conf - ${BASE_DIR}/redis3/logs:/logs command: [ "redis-server","/etc/redis/redis.conf" ] redis4: image: redis restart: always hostname: redis4 container_name: redis4 privileged: true network_mode: host environment: TZ: Asia/Shanghai volumes: - ${BASE_DIR}/redis4/data:/data - ${BASE_DIR}/redis4/conf/redis.conf:/etc/redis/redis.conf - ${BASE_DIR}/redis4/logs:/logs command: [ "redis-server","/etc/redis/redis.conf" ] redis5: image: redis restart: always hostname: redis5 container_name: redis5 privileged: true network_mode: host environment: TZ: Asia/Shanghai volumes: - ${BASE_DIR}/redis5/data:/data - ${BASE_DIR}/redis5/conf/redis.conf:/etc/redis/redis.conf - ${BASE_DIR}/redis5/logs:/logs command: [ "redis-server","/etc/redis/redis.conf" ] redis6: image: redis restart: always hostname: redis6 container_name: redis6 privileged: true network_mode: host environment: TZ: Asia/Shanghai volumes: - ${BASE_DIR}/redis6/data:/data - ${BASE_DIR}/redis6/conf/redis.conf:/etc/redis/redis.conf - ${BASE_DIR}/redis6/logs:/logs command: [ "redis-server","/etc/redis/redis.conf" ]
推荐阅读
- Redis 的大 Key 对持久化有什么影响?
- 手机防窥膜的原理是什么?真的会影响视力吗?
- 碘酒消毒的原理是什么?
- 三大指纹识别原理 指纹识别技术
- 玄空风水原理和方法 大玄空风水
- 图解涡轮增压器工作原理 涡轮增压器工作原理
- 跳绳减肥原理是什么
- 瘦身舞蹈瘦腿的原理是什么?
- 详解反渗透膜(RO 反渗透膜原理工作原理)
- 精索静脉曲张手术原理
