之前无论学什么东西,总感觉只要会写小Demo就完事了。但随着学习的深入,(内卷)接触的越来越多,集群、JVM、数据结构、算法、底层、Liunx 系统,任重而道远啊。 分享一句很喜欢的话:“八小时谋生活,八小时外谋发展”。 如果你也喜欢,那一起
共勉
😁😁
- [一、环境](https://cloud.tencent.com/developer)
- [二、前期准备](https://cloud.tencent.com/developer)
- [2.1、搜索、拉取redis镜像](https://cloud.tencent.com/developer)
- [2.2、Docker 容器网络](https://cloud.tencent.com/developer)
- [2.3、编写配置文件](https://cloud.tencent.com/developer)
- [三、启动容器](https://cloud.tencent.com/developer)
- [3.1、启动redis容器](https://cloud.tencent.com/developer)
- [3.2、创建Redis Cluster集群](https://cloud.tencent.com/developer)
- [1、进入redis-6379 容器](https://cloud.tencent.com/developer)
- [2、创建集群](https://cloud.tencent.com/developer)
- [3、查看节点相关信息](https://cloud.tencent.com/developer)
- [四、测试](https://cloud.tencent.com/developer)
- [4.1、本机测试](https://cloud.tencent.com/developer)
- [4.2、外网测试](https://cloud.tencent.com/developer)
- [4.3、出错可能会用到的命令](https://cloud.tencent.com/developer)
- [4.4、可能会出的错](https://cloud.tencent.com/developer)
- [五、博主自言](https://cloud.tencent.com/developer)
大致步骤:😜
docker search redis
docker pull redis
创建虚拟网卡😄
创建虚拟网卡,主要是用于redis-cluster能于外界进行网络通信,一般常用桥接模式。
docker network create myredis
查看Docker 网卡信息
docker network ls
3、查看dockerr网络详细信息
docker network inspect myredis
4、补充(删除网卡信息、帮助命令)
docker network rm myredis #删除网卡命令 多个中间 空格隔开
docker network --help #显示可带参数等
此处用到了一点 shlle
编程中 的一些命令,让我们操作更加便利。😃
for port in $(seq 6379 6384);
do
mkdir -p /home/redis/node-${port}/conf
touch /home/redis/node-${port}/conf/redis.conf
cat << EOF > /home/redis/node-${port}/conf/redis.conf
port ${port}
requirepass 1234
bind 0.0.0.0
protected-mode no
daemonize no
appendonly yes
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
cluster-announce-ip 服务器ip地址
cluster-announce-port ${port}
cluster-announce-bus-port 1${port}
EOF
done
命令解释:😊
port
:节点端口;requirepass
:设置密码,访问时需要验证protected-mode
:保护模式,默认值 yes,即开启。开启保护模式以后,需配置 bind ip
或者设置访问密码;关闭保护模式,外部网络可以直接访问;daemonize
:是否以守护线程的方式启动(后台启动),默认 no;appendonly
:是否开启 AOF 持久化模式,默认 no;cluster-enabled
:是否开启集群模式,默认 no;cluster-config-file
:集群节点信息文件;cluster-node-timeout
:集群节点连接超时时间;cluster-announce-ip
:集群节点 IP 注意:
如果你想要你的redis集群可以供外网访问,这里直接填 服务器的IP 地址即可cluster-announce-port
:集群节点映射端口;cluster-announce-bus-port
:集群节点总线端口。redis 在官网上有说明为什么需要映射两个端口 :redis官网
执行命令完:
我们通过tree 命令查看目录结构:(如果没有 tree
命令先安装 yum install -y tree
)
接下来就是启动容器拉
因为要启动六个容器,一个一个去启动,肯定是麻烦丫。就再次借助shell编程的力量。
for port in $(seq 6379 6384); \
do \
docker run -it -d -p ${port}:${port} -p 1${port}:1${port} \
--privileged=true -v /home/redis/node-${port}/conf/redis.conf:/usr/local/etc/redis/redis.conf \
--privileged=true -v /home/redis/node-${port}/data:/data \
--restart always --name redis-${port} --net myredis \
--sysctl net.core.somaxconn=1024 redis redis-server /usr/local/etc/redis/redis.conf
done
解释:🤑
执行完成:
亦可使用docker ps -a
查看运行中容器。
可以看到已全部启动成功。
👨🔧
可随意选择一个节点进入,创建Redis集群。
docker exec -it redis-6379 /bin/bash
redis-cli -a 之前设置的密码 --cluster create 配置文件中的IP地址:6379 IP地址:6380 IP地址:6381 IP地址:6382 IP地址:6383 IP地址:6384 --cluster-replicas 1
显示这样的画面就表示已经成功拉。
进入容器后,通过redis-cli -c -a 1234
,进入redis。👼
输入cluster info
查看集群信息
也可输入cluster nodes
查看所有节点相关信息
👨💻下一步就是进入测试阶段拉。😀
我们在 6381中 set 进去,同时在 6379 中能够取出来,这代表我们已经成功拉😁
进入windows中 你redis下载的目录中,进入cmd。
测试说明 我们已经可以连接拉。
那么我们就开启两个cmd 窗口,用不一样的端口进入。
到此,可以证明我们的集群是已经搭建成功拉。
批量停止容器
for port in $(seq 6379 6384);
do
docker stop redis-${port}
done
批量删除容器
for port in $(seq 6379 6384);
do
docker rm redis-${port}
done
注
: 如果是阿里云或者腾讯云上的服务器 ,要记得打开安全组规则, 6379~6384和16379 ~16384都要打开。
如果是虚拟机上,可能牵扯到防火墙,这个得注意一下。
👩💻
如若存在错误,欢迎大家不啬赐教!!!
如若存在疑惑或执行错误,请大家评论或私信,定会第一时间回复。
一起继续努力,或者啊,咱们一起🛌 ☺。