Linxu下Redis Cluster安装
1.docker部署方式(一定要看脚本部署大法!!!)
1.1 准备docker环境
1.1.1 准备 yum 源
配置可参考:https://www.cnblogs.com/lifuhei/p/10139762.html
将准备好的 docker.repo 放到路径下: /etc/yum.repos.d/
1.1.2 安装和启动 docker
<>内docker版本
yum install -y <docker-ce-18.06.1.ce>
启动 docker
systemctl start docker
查看 docker 状态
systemctl status docker
1.2 准备 redis cluster 配置文件
redis3.0开始支持集群功能,本次安装的版本是redis5.0.3。如果是安装其他版本,从redis官网上download对应版本下来,查看redis.conf有哪些配置项再做对应配置修改。
redis.conf.template
port <port>
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
cluster-announce-ip <cluster-announce-ip>
cluster-announce-port <port>
cluster-announce-bus-port 1<port>
protected-mode no
appendonly yes
创建文件夹
mkdir /root/docker/rediscluster
将准备好的redis.conf.template拷贝到目录下
cp redis.conf.template /root/docker/rediscluster
查询本机ip
ifconfig
替换ip,比如获取到的是 10.135.110.119
sed -i 's/<cluster-announce-ip>/10.135.110.119/g' /root/docker/rediscluster/redis.conf.template
在/root/docker/rediscluster/下创建目录
/root/docker/rediscluster//data
/root/docker/rediscluster//conf
比如打算起6个容器,用到的端口是9000-9005,那么就对应执行
mkdir -p /root/docker/rediscluster/9000/data
mkdir -p /root/docker/rediscluster/9000/conf
…
mkdir -p /root/docker/rediscluster/9005/data
mkdir -p /root/docker/rediscluster/9005/conf
把redis.conf.template拷贝到每个 /root/docker/rediscluster//conf 路径下,并替换template中的到对应端口,比如在 /root/docker/rediscluster/9000/conf 路径下的,那么对应修改为9000
cp /root/docker/rediscluster/redis.conf.template /root/docker/rediscluster/9000/conf/redis.conf
sed -i 's/<port>/9000/g' /root/docker/rediscluster/9000/conf/redis.conf
`
1.3 安装 redis cluster
查找并下载redis镜像
docker search redis
docker pull <redis image>
检查本地redis镜像
docker images | grep redis
创建redis-net,用于容器之间互相通信
docker network create redis-net
docker network inspect redis-net
docker 启动 redis cluster,因为要启动6个容器,从9000到9005,因此需要执行6次 docker run 命令
docker run -it -d -p <port>:<port> -p 1<port>:1<port>--privileged=true -v /root/docker/rediscluster/<port>/conf/redis.conf:/usr/local/etc/redis/redis.conf --privileged=true -v /root/docker/rediscluster/<port>/data:/data --restart always --name redis-cluster-<port> --net redis-net --sysctl net.core.somaxconn=1024 redis:5.0.3-alpine redis-server /usr/local/etc/redis/redis.conf
比如9000
docker run -it -d -p 9000:9000 -p 19000:19000 --privileged=true -v /root/docker/rediscluster/9000/conf/redis.conf:/usr/local/etc/redis/redis.conf --privileged=true -v /root/docker/rediscluster/9000/data:/data --restart always --name redis-cluster-9000 --net redis-net --sysctl net.core.somaxconn=1024 redis:5.0.3-alpine redis-server /usr/local/etc/redis/redis.conf
检查启动状态
docker ps -a -f status=running -f name=redis-cluster-900*
等6个容器的状态都是running时,启动 redis cluster
redis-cli -c -h 10.135.110.119 -p 9000 --cluster create 10.135.110.119:9000 10.135.110.119:9001 10.135.110.119:9002 10.135.110.119:9003 10.135.110.119:9004 10.135.110.119:9005 --cluster-replicas 1
安装时会询问master-slave的配置,使用默认配置键入 yes 即可。
至此,redis cluster 安装已完成。
1.4 脚本安装大法(shell部署直接看这里)
可以看出上面的安装重复步骤非常多,因此这里提供两个脚本。一个是准备环境的,另一个是直接安装redis cluster的,供参考。
前期还是要准备些文件的,并没有一键部署那么智能。
首先同样需要准备 yum 源 dcoker.repo
同样需要准备redis.conf.template
port <port>
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
cluster-announce-ip <cluster-announce-ip>
cluster-announce-port <port>
cluster-announce-bus-port 1<port>
protected-mode no
appendonly yes
准备脚本 prepare_env.sh。如果本来环境已经准备好了docker,可以从mkdir一行开始执行。
echo "Prepare enviroment"
cp ./docker.repo /etc/yum.repos.d/
yum install -y docker-ce-18.06.1.ce
systemctl start docker
systemctl status docker
mkdir -p /tmp/script/rediscluster/
cp ./* /tmp/script/rediscluster/
ip=