二、redis集群部署(3主3从)

一、R edis的3主3从模式部署

1.1第一步:

用plug用户在3台服务器/usr/local下创建文件夹redis-cluster目录,然后在其下面再分别创建6个文件夹(服务器1创建:8001、8002文件夹;服务器2创建:8003 8004文件夹;服务器3创建:8005 8006文件夹)

  1. mkdir -p /usr/local/redis-cluster #每个服务器都执行
  2. cd /usr/local/redis-cluster #每个服务器都执行
  3. 服务器1:mkdir 8001 8002 #服务器1执行
  4. 服务器2:mkdir 8003 8004 #服务器2执行
  5. 服务器3:mkdir 8005 8006 #服务器3执行

1.2第二步:

把redis/etc/下自带的redis.conf配置文件copy到8001下(同时也拷贝到8002、8003、8004、8005、8006目录下),8001修改如下内容:

  1. daemonize yes(后台启动)
  2. port 8001 (分别对每个机器的端口号进行设置)
  3. bind 192.168.0.6(配置当前机器的ip,这里方便redis集群定位机器,不绑定可能会出现循环查找集群节点机器的情况)
  4. dir /usr/local/redis-cluster/8001/(指定数据文件存放位置,必须要指定不同的目录位置,不然会丢失数据)
  5. cluster-enabled yes(启动集群模式)
  6. cluster-config-file nodes-8001.conf(这里800x最好和port对应上)
  7. cluster-node-timeout 5000(一台机器超时5秒,踢出去该机器。)
  8. appendonly yes
  9. requirepass 123456 (redis密码)

1.3第三步:

参考第二步,把8002-8006的redis.conf配置文件也修改下,重点配置第2、3、4、6项里的端口号,可以用批量替换的方法:

:%s/源字符串/g(:%s/8001/8002/g)

1.4第四步:

分别启动6个redis实例,然后检查是否启动成功

  1. /home/redis/bin/redis-server /usr/local/redis-cluster/800*/redis.conf
  2. ps -ef | grep redis(查看是否启动成功)

1.5第五步:

由于redis集群需要使用ruby命令,所以我们需要安装ruby

  1. yum install ruby
  2. yum install rubygems(1和2结合命令为:yum -y install ruby ruby-devel rubygems rpm-build)
  3. gem install redis --version 4.4.3(安装redis和ruby通讯的接口,版本不一定要和redis对应)

1.6第六步(把以上的单实例,组建为集群)

如下:启动、测试集群

  1. 启动集群

./redis-cli --cluster create 192.168.157.142:8001 192.168.157.142:8002 192.168.157.143:8003 192.168.157.143:8004 192.168.157.144:8005 192.168.157.144:8006 --cluster-replicas 1 -a 123456)

注释:上面1是指主从1:1(主/从) ,前面3台是主,后面3台是从

命令执行后:

Can I set the above......(是否按这个配置):yes

搭建完成:

1.7第七步验证集群

验证集群

  1. 连接任意一个客户端即可:./redis-cli -c -h -p (-c表示集群模式,指定ip地址和端口号),如:/usr/local/redis/bin/redis-cil -c -h 192.168.0.60 -p 800*(联机集群)
  2. 进行验证:cluster into(查看集群信息)、cluster nodes(查看节点列表)
  3. 进行数据操作验证
  4. set name hcf #登录服务器1写一个
  5. get name #登录服务器2或3看看能否获取该值,如果可以就没问题
  6. 关闭集群则需要逐个进行关闭,使用命令
  7. /usr/local/redis/bin/redis-cil -c -h 192.168.0.60 -p 8001 shutdown
  8. ps -ef |grep redis
  9. /usr/local/redis/bin/redis-cil -c -h 192.168.0.60 -p 8002 -a 123456(密码)
  10. cluster nodes(查看节点列表)

1.8第八步:遇到的错误:

问题1:

解决1:给redis设置密码,详见:

https://blog.csdn.net/m0_64284147/article/details/125682121

问题2:

解决2:

问题3:

解决3:protected-mod

问题4

解决4:给redis加密码,重启

问题5:启动集群时提示这个

解决5:这个只是提示密码不安全或者密码不能这么明显,这个不影响启动

问题6:启动单独redis时,提示这个

解决6:这个提示使用了集群模式启动,内存不足会......样的意思,待研究。不过不影响集群启动。

问题7:启动集群时提示这个

解决:这个是因为需要把每台redis都启动,然后再去启动集群。

问题8、查看、清理redis缓存值

查看redis缓存的值,首先登录redis:

>keys *

清理所有缓存值:

flushall

二、R edis集群启动和关闭命令

注释:启动命令上面后,下面这个是总结启动和关闭

2.1文件夹介绍:

/home/plug/redis-7.2.1:redis-7.2.1.tar.gz安装包解压的文件

redis:redis-7.2.1的安装文件,里面有bin文件夹,是负责启动redis和集群的

redis-cluster:redis集群的配置文件

2.2启动集群:

启动集群前先启动6个redis,分别是8001、8002、8003、8004、8005、8006端口

32服务器redis启动:

cd /home/plug/redis/bin

./redis-server /home/plug/redis-cluster/8001/redis.conf

./redis-server /home/plug/redis-cluster/8002/redis.conf

提示这个:大概意思是使用了集群模式启动,内存什么的。但不影响集群启动。

33服务器redis启动:

cd /home/plug/redis/bin

./redis-server /home/plug/redis-cluster/8003/redis.conf

./redis-server /home/plug/redis-cluster/8004/redis.conf

提示这个:大概意思是使用了集群模式启动,内存什么的。但不影响集群启动。

34服务器redis启动:

cd /home/plug/redis/bin

./redis-server /home/plug/redis-cluster/8005/redis.conf

./redis-server /home/plug/redis-cluster/8006/redis.conf

提示这个:大概意思是使用了集群模式启动,内存什么的。但不影响集群启动。

启动集群:

在32服务器上启动即可:

cd /home/plug/redis/bin

./redis-cli --cluster create 10.128.38.32:8001 10.128.38.32:8002 10.128.38.33:8003 10.128.38.33:8004 10.128.38.34:8005 10.128.38.34:8006 --cluster-replicas 1 -a 123456

启动成功标志:
验证集群是否成功:

在32服务器登陆8001或者8002端口的redis,然后存几个字段值。

在33和34服务器,查看能否查看32存的字段值。可以查看就说明集群通了。

32服务器存储值:

root@localhost bin\]# cd /home/plug/redis/bin/ \[root@localhost bin\]# ./redis-cli -c -h 10.128.38.32 -p 8001 -a 123456 Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe. 10.128.38.32:8001\> set name10 lixin -\> Redirected to slot \[15374\] located at 10.128.38.34:8005 OK 10.128.38.34:8005\> set name11 hcf OK 10.128.38.34:8005\> ![](https://i-blog.csdnimg.cn/direct/d3853451f6c443c8bf38a58926270bbb.png) ****33、34服务器查看值:**** ****\[plug@localhost bin\]$ cd /home/plug/redis/bin/**** ****\[plug@localhost bin\]$ ./redis-cli -c -h 10.128.38.34 -p 8006 -a 123456**** ****Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.**** ****10.128.38.34:8006\> get name10**** ****-\> Redirected to slot \[15374\] located at 10.128.38.34:8005**** ****"lixin"**** ****10.128.38.34:8005\> get name11**** ****"hcf"**** ****10.128.38.34:8005\>**** ![](https://i-blog.csdnimg.cn/direct/eed6185778b14c518cb01d4401948b26.png) ##### **其他(组建集群):** 组建集群命令: cd /home/plug/redis-7.2.1/src ./redis-trib.rb create --replicas 1 10.128.38.32:8001 10.128.38.32:8002 10.128.38.33:8003 10.128.38.33:8004 10.128.38.34:8005 10.128.38.34:8006 ### **2.3关闭集群:** 登陆每台集群: ./redis-cli -c -h 10.128.38.32 -p 8001 -a 123456 关闭: shutdown

相关推荐
顾漂亮5 小时前
Redis深度探索
java·redis·后端·spring·缓存
冉冰学姐5 小时前
SSM考试管理z2zvx(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
数据库·ssm 框架·学生信息管理
友友马5 小时前
『 QT 』信号-槽 补充: Qt信号槽断开连接与Lambda槽技巧
开发语言·数据库·qt
凡间客6 小时前
5、Python3编程之面向对象
java·服务器·数据库
涛思数据(TDengine)6 小时前
TDengine TSDB 3.3.8.0 上线:SMA、TLS、TDgpt、taosX、taosgen 一次全进化
大数据·数据库·时序数据库·tdengine
滴_咕噜咕噜6 小时前
【MFC】数据库操作:数据库动态生成
数据库·c++·mfc
YaoYuan93237 小时前
Ubuntu22.04 中搭建基于 Qemu 的内核(驱动)开发环境
数据库
hans汉斯7 小时前
【计算机科学与应用】基于多光谱成像与边缘计算的物流安全风险预警模式及系统实现
大数据·数据库·人工智能·设计模式·机器人·边缘计算·论文笔记
叫我龙翔7 小时前
【MySQL】从零开始了解数据库开发 --- 如何理解事务隔离性
数据库·mysql·数据库开发