docker部署redis集羣

首先創建幾個文件夾

mkdir -r /home/redis/redis_7001/redis_data
mkdir -r /home/redis/redis_7002/redis_data
mkdir -r /home/redis/redis_7003/redis_data
mkdir -r /home/redis/redis_7004/redis_data
mkdir -r /home/redis/redis_7005/redis_data
mkdir -r /home/redis/redis_7006/redis_data

vi /home/redis/redis_7001/redis_7001.conf
vi /home/redis/redis_7002/redis_7002.conf
vi /home/redis/redis_7003/redis_7003.conf
vi /home/redis/redis_7004/redis_7004.conf
vi /home/redis/redis_7005/redis_7005.conf
vi /home/redis/redis_7006/redis_7006.conf

redis.conf內容,端口要依次修改

#bind ip 外網訪問
port 7001 
protected-mode no
#requirepass admin
#masterauth admin
daemonize no
appendonly yes

cluster-enabled yes
cluster-node-timeout 15000
cluster-config-file nodes.conf

**注意: 在執行redis-trib create --replicas的時候,redis的密碼要配置刪掉,否則會連不上提示 can not connect ip **

version: '3.3'
services:
 redis-7001:
  image: redis:latest
  container_name: redis-7001
  restart: always
  command: redis-server /usr/local/etc/redis/redis.conf
  ports:
    - "7001:7001"
    - "17001:17001"
  volumes:
    - /home/redis/redis_7001/redis_data:/data
    - /home/redis/redis_7001/redis_7001.conf:/usr/local/etc/redis/redis.conf
    
 redis-7002:
  image: redis:latest
  container_name: redis-7002
  restart: always
  command: redis-server /usr/local/etc/redis/redis.conf
  ports:
    - "7002:7002"
    - "17002:17002"
  volumes:
    - /home/redis/redis_7002/redis_data:/data
    - /home/redis/redis_7002/redis_7002.conf:/usr/local/etc/redis/redis.conf
    
 redis-7003:
  image: redis:latest
  container_name: redis-7003
  restart: always
  command: redis-server /usr/local/etc/redis/redis.conf
  ports:
    - "7003:7003"
    - "17003:17003"
  volumes:
    - /home/redis/redis_7003/redis_data:/data
    - /home/redis/redis_7003/redis_7003.conf:/usr/local/etc/redis/redis.conf
    
 redis-7004:
  image: redis:latest
  container_name: redis-7004
  restart: always
  command: redis-server /usr/local/etc/redis/redis.conf
  ports:
    - "7004:7004"
    - "17004:17004"
  volumes:
    - /home/redis/redis_7004/redis_data:/data
    - /home/redis/redis_7004/redis_7004.conf:/usr/local/etc/redis/redis.conf
    
 redis-7005:
  image: redis:latest
  container_name: redis-7005
  restart: always
  command: redis-server /usr/local/etc/redis/redis.conf
  ports:
    - "7005:7005"
    - "17005:17005"
  volumes:
    - /home/redis/redis_7005/redis_data:/data
    - /home/redis/redis_7005/redis_7005.conf:/usr/local/etc/redis/redis.conf
    
 redis-7006:
  image: redis:latest
  container_name: redis-7006
  restart: always
  command: redis-server /usr/local/etc/redis/redis.conf
  ports:
    - "7006:7006"
    - "17006:17006"
  volumes:
    - /home/redis/redis_7006/redis_data:/data
    - /home/redis/redis_7006/redis_7006.conf:/usr/local/etc/redis/redis.conf

部署cluster

docker run --rm -it gavinmroy/redis-trib create --replicas 1 10.17.27.212:7001 10.17.27.212:7002 10.17.27.212:7003 10.17.27.212:7004 10.17.27.212:7005 10.17.27.212:7006 


--replicas 1   每個master有1個slave

6臺機器,3個master,3個slave,儘量自己讓master和slave不在一臺機器上

docker run --rm -it gavinmroy/redis-trib check 10.17.27.212:7001

注意:如果再分配slot集羣的時候,用的是內網分配,則java redis-cluster客戶端用外網會連不上,報redis.clients.jedis.exceptions.JedisClusterMaxRedirectionsException: Too many Cluster redirections?的錯,得用內網連接

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章