【集群运维篇】使用docker简单快速搭建redis集群

使用docker简单快速搭建redis集群

搭建3主3从redis 服务架构

1、我们先创建6个redis 服务

我们搭建一个3主3从集群,其中从服务主要为同步备份,主服务进行数据分片,我们为了方便快捷创建出集群,我们执行以下命令即可为我们创建出端口为7001~7006,6个redis服务。

#复制以下命令,创建出6个redis服务
for port in $(seq 7001 7006); \
do \
mkdir -p ~/mydata/redis/node-${port}/conf
touch ~/mydata/redis/node-${port}/conf/redis.conf
cat << EOF >~/mydata/redis/node-${port}/conf/redis.conf
port ${port}
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
cluster-announce-ip 192.168.0.100
cluster-announce-port ${port}
cluster-announce-bus-port 1${port}
appendonly yes #开启持久AOF
EOF
docker run -p ${port}:${port} -p 1${port}:1${port} --name redis-${port} --restart always \
-v ~/mydata/redis/node-${port}/data:/data \
-v ~/mydata/redis/node-${port}/conf:/etc/redis \
-d redis:5.0.7 redis-server /etc/redis/redis.conf \

done

#停止docker redis容器服务
docker stop $(docker ps -a|grep redis-700|awk '{print$1}')
#删除docker redis容器服务,加-f代表强制删除,可以删掉未停止的服务
docker rm -f $(docker ps -a|grep redis-700|awk '{print$1}')

注意:–restart always 代表随docker服务启动而自启动。如果不需要则可以删掉。另外如果设置后,可以通过docker update --restart=no 容器ID 命令修改参数为不自启动,restart参数说明如下:

  • no 不自动重启
  • on-failure:重启次数 指定自动重启的失败次数,到达失败次数后不再重启
  • always 自动重启
#docker update --restart=no [容器名] 
#docker update --restart=always [容器名]
#docker update --restart=on-failure:3 [容器名]
#如需要批量修改容器参数,使用以下命令修改即可
docker update --restart=no  $(docker ps -a|grep redis-700|awk '{print$1}')

2、开始配置redis集群

#随意进入redis服务(预设master服务)
docker exec -it redis-7001 bash
#执行集群命令,--cluster-replicas 1 我们这里是一个副本
redis-cli --cluster create 192.168.0.100:7001 192.168.0.100:7002 192.168.0.100:7003 192.168.0.100:7004 192.168.0.100:7005 192.168.0.100:7006 --cluster-replicas 1

#测试集群连接,注意我们这里有一个-c则是连接集群
redis-cli -c -h 192.168.0.100 -p 7001

#查询集群状态
cluster info
#查看集群节点信息
cluster nodes

至此我们redis集群则搭建完毕,当然不想自己搭建也是可以的,目前主流阿里云、腾讯云 都提高云上解决方案;

  • 阿里云数据库 Redis 版连接
  • 腾讯云数据库 TencentDB for Redis连接

你可能感兴趣的:(云服务架构,运维工具,Docker深入浅出,数据库,运维,redis,docker)