基於docker環境搭建redis-cluster集群(單機)


1.拉取redis鏡像

  

2.創建redis的配置文件redis-cluster.tmpl

protected-mode no ##設置外部網絡連接redis服務,默認是yes,即開啟。開啟protected-mode保護模式,需配置bind ip或者設置訪問密碼,關閉protected-mode模式,此時外部網絡可以直接訪問
port ${PORT} ##節點端口
daemonize no ##指定redis是否要用守護線程的方式啟動,默認no
appendonly yes ##持久化模式
cluster-enabled yes ##cluster集群模式
cluster-config-file nodes.conf ##集群配置名
cluster-node-timeout 15000 ##超時時間
cluster-announce-ip 172.18.0.${TEMP} ##實際為各節點網卡分配ip
cluster-announce-port ${PORT}  ##節點映射端口
cluster-announce-bus-port 1${PORT}  ##節點總線端

3.創建自定義網橋redis-net

docker network create redis-net

4.創建creatRedisCluster.sh腳本,用來生成每個節點的conf和data信息

for port in `seq 7001 7006`; do \
  base=6999 \
  && ip=$[port-base] \
  && mkdir -p ${port}/conf \
  && PORT=${port} TEMP=${ip} envsubst < redis-cluster.tmpl > ${port}/conf/redis.conf \
  && mkdir -p ${port}/data;\
done

運行該腳本,生成如下目錄

5.啟動6個redis實例

創建腳本creatDocker.sh

for port in `seq 7001 7006`; do
  docker run -p ${port}:${port} -p 1${port}:1${port} --name redis-${port} \
  -v /home/gmh/redis-cluster/${port}/conf/redis.conf:/usr/local/etc/redis/redis.conf \
  -v /home/gmh/redis-cluster/${port}/data:/data --name redis-${port} --net redis-net --rm -d redis:5.0 redis-server /usr/local/etc/redis/redis.conf;
done

運行該腳本

6.創建redis-cluster集群

進入一個實例容器

docker exec -it redis-7001 bash

執行如下命令

/usr/local/bin/redis-cli --cluster create 172.18.0.2:7001 172.18.0.3:7002 172.18.0.4:7003 172.18.0.5:7004 172.18.0.6:7005 172.18.0.7:7006  --cluster-replicas 1

等待搭建完成。。。

7.測試

##set
/usr/local/bin/redis-cli -c -h 127.18.0.2 -p 7001
set aaa 111
##get
docker exec -it redis-7002 /usr/local/bin/redis-cli -c -h 172.18.0.3 -p 7002
get aaa

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM