阿里云服务器 使用docker搭建redis集群

本文为博主搭建redis集群的笔记,这里用到的服务器版本是CentOs7.5,废话不多说,具体操作码上。

1、开放端口

在搭建集群之前,我们要先开放对应的端口,阿里云要添加防火墙规则。
首先登录阿里云服务器管理平台,进入网络安全中的安全组,执行以下操作添加端口
阿里云服务器 使用docker搭建redis集群_第1张图片
阿里云服务器 使用docker搭建redis集群_第2张图片
然后登录linux服务器后,添加端口

vi /etc/sysconfig/iptables

2、安装docker

安装docker

3、拉取redis镜像

docker pull redis

4、拉取ruby

docker pull ruby

5、创建基础redis容器

在/usr/local/src目录下创建redis-cluster文件夹,并创建配置文件redis-cluster.conf

cd /usr/local/src && mkdir redis-cluster && cd ./redis-cluster && touch redis-cluster.conf

在redis-cluster.conf 添加以下内容

port ${PORT}
cluster-enabled yes
protected-mode no
cluster-config-file nodes.conf
cluster-node-timeout 5000
#对外ip
cluster-announce-ip [ip]
cluster-announce-port ${PORT}
cluster-announce-bus-port 1${PORT}
appendonly yes

ps:注意修改 [ip],[ip]为你服务器ip。

6.创建自定义network(redis-net),用于集群节点间通信

docker network create redis-net

7、在/usr/local/src/redis-cluster下生成conf和data目录,并生成配置信息

进入/usr/local/src/redis-cluster

cd /usr/local/src/redis-cluster

生成conf和data目录,并生成配置信息

for port in `seq 6000 6005`; do 
  mkdir -p ./${port}/conf && PORT=${port} envsubst < ./redis-cluster.conf > ./${port}/conf/redis.conf && mkdir -p ./${port}/data;
done

ps:共生成6个文件夹,从6000到6005,每个文件夹下包含data和conf文件夹,同时conf里面有redis.conf配置文件。

8、通过redis镜像创建6个redis容器

for port in `seq 6000 6005`; do 
  docker run -d -ti -p ${port}:${port} -p 1${port}:1${port} -v /usr/local/src/redis-cluster/${port}/conf/redis.conf:/usr/local/etc/redis/redis.conf -v /usr/local/src/redis-cluster/${port}/data:/data  --restart always --name redis-${port} --net redis-net --sysctl net.core.somaxconn=1024 redis redis-server /usr/local/etc/redis/redis.conf; 
done

9、构建redis集群

任意进入一个创建的Redis容器(CONTAINER ID为容器id)

docker exec -it CONTAINER ID  /bin/bash

执行

redis-cli --cluster create ip:6000 ip:6001 ip:6002 ip:6003 ip:6004 ip:6005 --cluster-replicas 1

ps:这里的ip为你服务器的ip,记得修改。

如果出现waiting for the Cluster to join…,那么应该是你端口没有开放完全。
阿里云服务器 使用docker搭建redis集群_第3张图片

正确操作应该是:
阿里云服务器 使用docker搭建redis集群_第4张图片ps:中途要输入 yes,确认要初始化。

10、查看redis集群节点信息

首先进入任意一个Redis容器内(CONTAINER ID为容器id)

docker exec -it CONTAINER ID /bin/bash

然后进入 redis-cli(ip为你服务器ip)

 redis-cli -h ip -p 6000

查看节点消息

 cluster nodes

11、测试reids集群

普通模式连接:由于 test 根据哈希槽计算,是分布在 6001服务上。所以这里会提示转到 6001。
在这里插入图片描述
集群模式连接:以下例子显示操作正常(首先要退出当前redis-cli,然后再执行以下代码,ip为你服务器ip)。

redis-cli -c -h ip -p 6000 set test 1
redis-cli -c -h ip -p 6000 get test

在这里插入图片描述
到这里,集群模式连接读写正常,集群搭建成功。

总结:若是有误,麻烦各位大神指点。转载请附上原作者,谢谢。

你可能感兴趣的:(docker,linux,java,redis,centos)