昆明网站推广公司,做繁体书的网站,购物网站开发的难点,个人网页设计版面原创/朱季谦
最近买了一台4核16的腾讯云轻量应用服务器,花了我快四百的大洋#xff0c;打算搭建一堆docker组件集群#xff0c;最先开始是通过docker搭建redis集群#xff0c;计划使用三个端口#xff0c;分别是7001,7002,7003。
腾讯云服务器有防火墙限制#xff0c;故…原创/朱季谦
最近买了一台4核16的腾讯云轻量应用服务器,花了我快四百的大洋打算搭建一堆docker组件集群最先开始是通过docker搭建redis集群计划使用三个端口分别是7001,7002,7003。
腾讯云服务器有防火墙限制故而需要在控制面板的防火墙开放这六个端口—— 注意为什么开放了7001,7002,7003还需要开放它们对应的总线端口17001,17002,17003呢因为这是它们集群心跳连接的端口若不开放将在对各启动容器节点创建集群时会创建集群分配槽时失败。
完成这一步后就可以开始通过docker拉取redis的镜像了这里拉取的是redis:5.0.5版本——
docker pull redis:5.0.5创建redis-template.conf模板将根据该模板自动生成各节点对应的redis.conf文件——
mkdir /app/redis cd /app/redis mkdir redis-cluster cd ./redis-cluster touch redis-template.conf接着修改redis-template.conf模板文件内容直接使用vi redis-template.conf指令—— 输入以下内容即可——
#节点端口
port ${PORT}
#设置为集群节点
cluster-enabled yes
#外网连接必须设置为 no
protected-mode no
#集群节点文件
cluster-config-file nodes.conf
cluster-node-timeout 5000
#改成你的外网ip假设我的腾讯云服务器外网ip是14.253.73.xx
cluster-announce-ip 14.253.73.xx
#外网端口
cluster-announce-port ${PORT}
#总线端口
cluster-announce-bus-port 1${PORT}appendonly yesdocker中创建一个redis集群专用的网络redis-net供集群使用
docker network create redis-net进入到存放redis-template.conf模板文件的目录下——
cd /app/redis/redis-cluster/直接在命令行中复制以下指令然后回车执行——
for port in seq 7001 7003; do mkdir -p ./${port}/conf PORT${port} envsubst ./redis-template.conf ./${port}/conf/redis.conf mkdir -p ./${port}/data;
done执行完后通过指令ll查看发现自动生成了7001~7003的目录—— 接着直接复制以下指令——
for port in seq 7001 7003; do docker run -d -ti -p ${port}:${port} -p 1${port}:1${port} -v /app/redis/redis-cluster/${port}/conf/redis.conf:/usr/local/etc/redis/redis.conf -v /app/redis/redis-cluster/${port}/data:/data --restart always --name redis-${port} --net redis-net --sysctl net.core.somaxconn1024 redis:5.0.5 redis-server /usr/local/etc/redis/redis.conf;
done回车后即可自动启动docker容器实例—— 正常启动成功话通过docker ps -a指令查看显示以下信息—— 这时候我们只需要进入到其中一个docker容器的redis中将各节点组成集群这里进入到redis-7001容器中——
docker exec -it redis-7001 /bin/bash接着执行以下指令即可——
redis-cli --cluster create 外网ip:7001 外网ip:7002 外网ip:7003 --cluster-replicas 0注意后续若改成三主三从时这里的集群指令为——
redis-cli --cluster create 外网ip:7001 外网ip:7002 外网ip:7003 外网ip:7004 外网ip:7005 外网ip:7006 --cluster-replicas 1当出现以下请求时直接填写 yes 即可——
Can I set the above configuration? (type yes to accept): yes
最后启动成功后会出现以下信息—— 这时我们可以测试一下通过指令 redis-cli -c -h 外网IP -p 7001连接到集群节点上正常连接上去后再通过指令cluster info查看集群状态显示ok说明集群正常这时还可以通过cluster nodes查看各节点具体槽分配信息—— 到这一步通过springbootredis即可连接到腾讯云服务器上docker部署的redis集群了我测试验证可行——