正文
redis cluster 集群部署
小程序:扫一扫查出行
【扫一扫了解最新限行尾号】
复制小程序
【扫一扫了解最新限行尾号】
复制小程序
准备工作
1. 安装docker
curl -s https://get.docker.com/ | sh
注:一键安装的事最新版docker。已安装docker可跳过此步骤
2. 获取基础镜像
docker pull redisdocker pull ruby
注:至此,docker上redis cluster所有工具准备完毕,我们在命令行上输入docker images,就可以查看到已经安装的镜像
搭建
一、创建redis容器
1、创建redis配置文件(redis-cluster.tmpl)
实例:(本实例中使用6个节点,3主3从)
路径/home下创建文件夹redis-cluster,在路径/home/redis-cluster下创建一个文件redis-cluster.tmpl,并把以下内容复制过去。(注:路径可自定义,我用的是/home/redis-cluster)
port ${PORT}cluster-enabled yescluster-config-file nodes.confcluster-node-timeoutcluster-announce-ip .10X.XX.XX //自己服务器IPcluster-announce-port ${PORT}cluster-announce-bus-port ${PORT}appendonly yes
2、创建自定义network
docker network create redis-net
注:原理上使用docker默认的网络也是可行的
3、在/home/redis-cluster下生成conf和data目标,并生成配置信息
`; do \ mkdir -p ./${port}/conf \ && PORT=${port} envsubst < ./redis-cluster.tmpl > ./${port}/conf/redis.conf \ && mkdir -p ./${port}/data; \done
共生成6个文件夹,从7000到7005,每个文件夹下包含data和conf文件夹,同时conf里面有redis.conf配置文件
4、创建redis容器
`; do \ docker run -d -ti -p ${port}:${port} -p ${port}:${port} \ -v /home/redis-cluster/${port}/conf/redis.conf:/usr/local/etc/redis/redis.conf \ -v /home/redis-cluster/${port}/data:/data \ --restart always --name redis-${port} --net redis-net \ --sysctl net.core.somaxconn= redis redis-server /usr/local/etc/redis/redis.conf; \done
生成6个redis容器
二、集群
通过启动ruby来实现集群
echo yes | docker run -i --rm --net redis-net ruby sh -c '\gem install redis \&& wget http://download.redis.io/redis-stable/src/redis-trib.rb \&& ruby redis-trib.rb create --replicas \'"$(for port in `seq 7000 7005`; do \echo -n "$(docker inspect --format '{{ (index .NetworkSettings.Networks "redis-net").IPAddress }}' "redis-${port}")":${port} ' ' ; \done)"
输入命令后,可以得到下面的信息说明集群成功了