首页
首页
文章目录
  1. 前面文章写了在centos下搭建redis集群

通过Docker搭建redis3.0.7集群

前面文章写了在centos下搭建redis集群

现在的Dcoker非常火,而且我所在的公司也在使用docker,那么我就想在docker下部署redis集群

  1. 编译redis
  2. 编写Dockerfile文件
  3. 编写run.sh启动脚本
  4. build镜像
  5. 启动测试

1、编译

这里我就不写如何编辑redis了 详情可以去看我之前写的Centos7 部署redis3.*集群文章

2、编写Dockerfile文件

1
2
3
4
5
6
7
FROM centos:latest
MAINTAINER Dzer0
COPY redis /usr/local/redis
COPY run.sh /run.sh
RUN chmod u+x run.sh
WORKDIR /usr/local/redis
ENTRYPOINT ["/run.sh"]

3、编写run.sh脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#!/bin/sh
# 进入目录
cd /usr/local/redis
# 替换端口
[ "x" != "x$PORT" ] && sed -i "s/7000/$PORT/g" redis.conf
# 替换bind
[ "x" != "x$BIND" ] && sed -i "s/bind 127.0.0.1/bind $IP/g" redis.conf
# 启用节点
sed -i 's/# cluster-enabled yes/cluster-enabled yes/g' redis.conf
# 设置超时时间
sed -i 's/# cluster-node-timeout 15000/cluster-node-timeout 5000/g' redis.conf
# 设置配置文件
[ "x" != "x$PORT" ] && sed -i "s/# cluster-config-file nodes.*/cluster-config-file nodes-$PORT.conf/g" redis.conf
# 启动 redis服务
/usr/local/redis/redis-server /usr/local/redis/redis.conf
# 启动后方式镜像自动退出
while :;
do
sleep 10
trap exit 1 2
done

4、build镜像

docker build -f Dockerfile -t redis:3.0.7 .

5、启动测试

1
2
3
for i in {9001..9006};do
docker run -d --name=redis_$i --net=host -e PORT=$i redis:3.0.7
done

之后在本地编译好的redis-3..7/src/执行集群创建

./redis-trib.rb create –replicas 1 192.168.159.128:9001 192.168.159.128:9002 192.168.159.128:9003 192.168.159.128:9004 192.168.159.128:9005 192.168.159.128:9006

测试集群

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 [root@localhost src]# ./redis-cli -c -p 9001 -h 192.168.159.128
192.168.159.128:9001> set name Dzer0
-> Redirected to slot [5798] located at 192.168.159.128:9002
OK
192.168.159.128:9002> get name
"Dzer0"
192.168.159.128:9002> exit
[root@localhost src]# ./redis-cli -c -p 9006 -h 192.168.159.128
192.168.159.128:9006> get name
-> Redirected to slot [5798] located at 192.168.159.128:9002
"Dzer0"
192.168.159.128:9002> exit
[root@localhost src]# ./redis-cli -c -p 9004 -h 192.168.159.128
192.168.159.128:9004> get name
-> Redirected to slot [5798] located at 192.168.159.128:9002
"Dzer0"

到此基于Docker的redis集群已经创建完毕。

以上内容均上传至github,大家可以https://github.com/Dzer0/Docker

支持一下
扫一扫,我会更有动力更新
  • 微信扫一扫
  • 支付宝扫一扫