docker-安装redis集群

目录

1.服务器列表

2.安装docker

3.docker命令扩展

4.docker安装redis集群

1.选择合适数据位置

2.循环生成redis配置目录

3.打开宿主机防火墙端口

4.循环生成redis容器

5.创建集群命令

6.命令行集群验证

5.测试连接,新增key


1.服务器列表

服务器列表
name ip 远程端口 用户名/密码
centos_4g_04 192.168.1.11 22

2.安装docker

docker01-lunix安装docker_unix 安装docker_别浪呀的博客-CSDN博客

3.docker命令扩展

# 扩展用于测试阶段,容器没有达到预期
# docker 停止所有容器
docker stop `docker ps -a -q`

docker ps -a -q 意思是列出所有容器(包括未运行的),只显示容器编号,其中
-a : 显示所有的容器,包括未运行的。
-q : 静默模式,只显示容器编号。

# 删除所有容器,将上面命令中的 stop 改为 rm 即可:
docker rm `docker ps -a -q`

# 删除所有镜像
docker rmi `docker ps -a -q`

4.docker安装redis集群

1.选择合适数据位置

#根据机器资源分配情况,选择合适位置
rm -rf /data/docker/redis/
mkdir -p /data/docker/redis/ 
vi /data/docker/redis/redis-cluster.tmpl



# 容器内启动端口 12400-12405
port 1${PORT}
# 服务器ip
# bind 192.168.1.11
# 集群端口
cluster-announce-port 1${PORT}
# 集群总线端口,用于集群之间进行通信
cluster-announce-bus-port 2${PORT}
#Redis支持集群
cluster-enabled yes
#每一个集群节点都有一个配置文件,这个文件是不能手动编辑的。确保每一个集群节点的配置文件不通
cluster-config-file nodes.conf
#集群节点的超时时间,单位:ms,超时后集群会认为该节点失败
cluster-node-timeout 5000
#开启aof模式持久化策略
appendonly yes
#淘汰策略
maxmemory-policy volatile-lru
#redis密码,可以根据实际需要调整,但整个集群各节点密码请保持统一
requirepass admin@1196869282

2.循环生成redis配置目录

for port in $(seq 2400 2405); \
do \
  mkdir -p /data/docker/redis/1${port}/conf  \
  && PORT=${port} envsubst < /data/docker/redis/redis-cluster.tmpl > /data/docker/redis/1${port}/conf/redis.conf \
  && mkdir -p /data/docker/redis/1${port}/{data,logs}; \
done

# 查看某一个生成的配置文件
cat /data/docker/redis/12400/conf/redis.conf

 docker-安装redis集群_第1张图片

3.打开宿主机防火墙端口

#  12400-12405
firewall-cmd --zone=public --add-port=12400/tcp --permanent
firewall-cmd --zone=public --add-port=12401/tcp --permanent
firewall-cmd --zone=public --add-port=12402/tcp --permanent
firewall-cmd --zone=public --add-port=12402/tcp --permanent
firewall-cmd --zone=public --add-port=12403/tcp --permanent
firewall-cmd --zone=public --add-port=12404/tcp --permanent
firewall-cmd --zone=public --add-port=12405/tcp --permanent

firewall-cmd --zone=public --add-port=22400/tcp --permanent
firewall-cmd --zone=public --add-port=22401/tcp --permanent
firewall-cmd --zone=public --add-port=22402/tcp --permanent
firewall-cmd --zone=public --add-port=22403/tcp --permanent
firewall-cmd --zone=public --add-port=22404/tcp --permanent
firewall-cmd --zone=public --add-port=22405/tcp --permanent
firewall-cmd --reload

4.循环生成redis容器

第一次需要拉去镜像会慢一些 ,--net 要选择 host

 for port in $(seq 2400 2405);  \
do \
    docker run -it -d --name redis-1${port}  --restart=always \
    -p 1${port}:1${port} -p 2${port}:2${port} \
    --net host \
    -m 400m  \
    -e TZ=Asia/Shanghai --privileged=true \
    -v /data/docker/redis/1${port}/conf/redis.conf:/etc/redis/redis.conf \
    -v /data/docker/redis/1${port}/data:/data \
    redis:6.2.6 redis-server /etc/redis/redis.conf; \
done
# 查看运行的redis
docker ps

docker-安装redis集群_第2张图片

5.创建集群命令

# 进入一个容器内部
docker exec -it redis-12400 /bin/bash
 #-a之后为redis密码,ip\端口、密码请根据实际情况修改
 # 12400-12405
redis-cli --cluster create --cluster-replicas 1 -a admin@1196869282 \
192.168.1.11:12400 192.168.1.11:12401 192.168.1.11:12402 \
192.168.1.11:12403 192.168.1.11:12404 192.168.1.11:12405

# 输入yes等待即可

docker-安装redis集群_第3张图片

6.命令行集群验证

# 在容器内登录某一个redis
redis-cli -h 192.168.1.11 -p 12400 -a admin@1196869282
# 查看集群节点信息
cluster nodes

 docker-安装redis集群_第4张图片

# 查看集群信息
cluster info

cluster_state 集群状态是 ok ,如果为 fail 则表示集群状态异常。
cluster_size 集群 Master 数量
cluster_know_nodes 集群 节点 数量

docker-安装redis集群_第5张图片

5.测试连接,新增key

选择cluster能连接即可

docker-安装redis集群_第6张图片

 测试新增key,点击ok无异常即可

docker-安装redis集群_第7张图片

springboot集成redis集群

 spring-boot-redis-cluster: springboot+redis集群

你可能感兴趣的:(docker,redis,服务器)