redis 集群搭建

我做了一个导航站(域名是挂路灯的全拼gualudeng.com),里面精选了各种影视,动漫,黑科技,实用工具,搞笑有趣的站点,动动大家可爱的小手,点进来看看吧,良心站点。

注意事项redis集群不支持服务别名,所以需要在docker-compose文件中固定ip。

redis集群是可以自动进行主从切换的。不用自己去配置哨兵。

同时redis集群提供自己的hash数据分片算法。不像mysql需要使用mycat中间件去实现。

1.目录结构

├── docker-compose.yml  
├── redis1              
│   ├── master          
│   │   └── redis.conf  
│   └── slave1          
│       └── redis.conf  
├── redis2              
│   ├── master          
│   │   └── redis.conf  
│   └── slave1          
│       └── redis.conf  
├── redis3              
│   ├── master          
│   │   └── redis.conf  
│   └── slave1          
│       └── redis.conf  
└── start.sh            

2.docker文件

version: "3"
services:
  redis1-master:
    image: redis
    container_name: redis1-master
    networks: 
      mynetwork:
        ipv4_address: 172.19.0.2
    volumes: 
      - /vagrant_data/redis_cluster/redis1/master:/usr/local/etc/redis
    command: 
      - sh 
      - -c
      - |
        redis-server /usr/local/etc/redis/redis.conf
  redis1-slave1:
    image: redis
    container_name: redis1-slave1
    networks: 
      mynetwork:
        ipv4_address: 172.19.0.3
    volumes: 
      - /vagrant_data/redis_cluster/redis1/slave1:/usr/local/etc/redis 
    command: 
      - sh 
      - -c
      - |
        redis-server /usr/local/etc/redis/redis.conf 
  redis2-master:
    image: redis
    container_name: redis2-master
    networks: 
      mynetwork:
        ipv4_address: 172.19.0.4
    volumes: 
      - /vagrant_data/redis_cluster/redis2/master:/usr/local/etc/redis
    command: 
      - sh 
      - -c
      - |
        redis-server /usr/local/etc/redis/redis.conf 

  redis2-slave1:
    image: redis
    container_name: redis2-slave1
    networks: 
      mynetwork:
        ipv4_address: 172.19.0.5
    volumes: 
      - /vagrant_data/redis_cluster/redis2/slave1:/usr/local/etc/redis
    command: 
      - sh 
      - -c
      - |
        redis-server /usr/local/etc/redis/redis.conf
  redis3-master:
    image: redis
    container_name: redis3-master
    networks: 
      mynetwork:
        ipv4_address: 172.19.0.6
    volumes: 
      - /vagrant_data/redis_cluster/redis3/master:/usr/local/etc/redis
    command: 
      - sh 
      - -c
      - |
        redis-server /usr/local/etc/redis/redis.conf 

  redis3-slave1:
    image: redis
    container_name: redis3-slave1
    networks: 
      mynetwork:
        ipv4_address: 172.19.0.7
    volumes: 
      - /vagrant_data/redis_cluster/redis3/slave1:/usr/local/etc/redis
    command: 
      - sh 
      - -c
      - |
        redis-server /usr/local/etc/redis/redis.conf

networks:
  mynetwork:
    ipam:
      config:
        - subnet: 172.19.0.0/16

                 

3.脚本文件

#!/bin/bash
docker-compose up -d
master='redis1-master'
passwd='fang'
cluster=(172.19.0.2 172.19.0.4 172.19.0.6 172.19.0.3 172.19.0.5 172.19.0.7)
cmd="redis-cli -a $passwd --cluster create "

for c in ${cluster[@]};do
	cmd+=$c":6379 "
done
cmd+="--cluster-replicas 1" 

docker exec -it $master sh -c "$cmd"

4.配置文件

#配置文件只需开启
requirepass fang
masterauth fang
cluster-enabled yes

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值