动力风网站建设及软件开发合同,阿里云安装wordpress,招远网站定制,wordpress免费文章采集器我们的目标是使用2台#xff08;多台服务器类似#xff09;服务器搭建一个3主3从的redis集群。
我们为什么要使用redis 7呢#xff1f;因为6、7的版本都做了大量优化#xff0c;比如6引入了多线程#xff08;一些JAVA八股文面试还喜欢问redis为什么是单线程#xff09;多台服务器类似服务器搭建一个3主3从的redis集群。
我们为什么要使用redis 7呢因为6、7的版本都做了大量优化比如6引入了多线程一些JAVA八股文面试还喜欢问redis为什么是单线程7的aof文件可以写入多文件这些都带来了性能及稳定性的提升。
当然新版本的Redis对于搭建集群的友好程度也进一步提升了。
获取安装包
通过以下地址获取redis 7压缩包
https://codeload.github.com/redis/redis/tar.gz/refs/tags/7.0.8 在自己习惯的位置创建redis目录有朋友喜欢在/opt/目录下有朋友喜欢在/usr/local/目录下 进入创建好的目录获取压缩包 sudo wget https://codeload.github.com/redis/redis/tar.gz/refs/tags/7.0.8 解压压缩包: tar -xf redis-7.0.8.tar.gz -C clucter 创建几个备用目录: mkdir 16789 16790 16791
编译Redis包
这里需要注意一下如果这是一台新的centos 7 主机直接make是会失败的redis自6以后需要C11特性支持这里也不需要去安装ruby了在较早的版本环境准备确实更麻烦一些。
安装依赖包
yum -y install gcc gcc-c make tcl yum -y install centos-release-scl yum -y install devtoolset-9-gcc devtoolset-9-gcc-c devtoolset-9-binutils#x20;scl enable devtoolset-9 bash编辑安装
进入解压的redis根目录执行以下命令
sudo make install修改配置文件
vim redis.conf这里列出几个重要的要修改的内容项
port 16789;bind 10.11.12.13 # redis的内网IP用于监听该IP多组IP时用空格分隔不建议直接配置0.0.0.0protected-mode yes # 不想要密码可以此处为nomasterauth myredisPwd #x20;requirepass myredisPwdcluster-config-file nodes-16789.confappendfilename appendonly16379.aofdir ./16379dbfilename dump16379.rdblogfile /usr/local/redis7/logs/16379.logpidfile /var/run/redis\_16379.piddaemonize yesmaxmemory 1gb #根据自己的需求配置大小不设置该值有可能因占用系统内存过多而被系统杀死maxmemory-policy allkeys-lfu #根据自己业务实际情况选择数据清理策略cluster-enabled yes # 一般的redis节点并不能作为cluster需要手工开启。整个配置文件有很多配置项在实际生产中根据自己情况会有不同情况的调整。
多复制几份吧
既然我们打算3主3从只有一份是不够的因此我们需要将编译安装好的redis文件夹多复制几份
cp /redis-7.0.8 ../16789 -Rcp /redis-7.0.8 ../16790 -Rcp /redis-7.0.8 ../16791 -R批量替换关键字
配置文件中有很多与端口有关的信息每一份都需要不同。
sed -i s/16789/16790/g 16790/redis-7.0.8/redis.conf在另一台服务器上复制3份
目前我们已经在一台服务器上完成了3个节点的准备但是我们还需要有一台服务器准备因此在另一台服务器上将 16789 16790 16791 复制过去
修改监听IP
用上面的替换命令将IP11.12.13.14 替换为 11.12.13.15
启动服务
./redis-7.0.8/src/redis-server ./redis-7.0.8/redis.conf分别将2台服务器上的6个节点都启动后该步骤便告一段落。
组成集群
到了激动人心的最后一步一步一步走下来其实有点累了但是这一步还是轻松愉快的与过去组件集群不同这里只需要一个简单命令即可。
./16789/redis-7.0.8/src/redis-cli --cluster create 10.11.12.13:16789 10.11.12.13:16790 10.11.12.13:16791 10.11.12.14:16789 10.11.12.14:16790 10.11.12.14:16791 --cluster-replicas 1 -a myredisPwd以上命令以任何一个节点的客户端执行一次即可不用执行多次。
验证集群
杀死其中一个节点通过以下命令查看集群状态
./16789/redis-7.0.8/src/redis-cli --cluster check 10.11.12.13:16789会发现目前集群只有5个节点了但是集群状态依然是正常的。
重新启动刚才被杀死的节点
重新启动节点后会发现集群恢复了6个节点。
加入自启动
这里预留一小块一个redis被杀死了或者服务器重启了节点需要立即恢复。
当然这里会想磁盘数据持久化后在K8s中搭建Redis集群是否更好呢其对节点生命周期的管理或许能提供更好的redis集群稳定性这里有兴趣或有经验的小伙伴可以在留言中分享交流。