centos7 部署redis集群及问题总结

10 篇文章 0 订阅

前言

本文主要记录在centos7上搭建redis集群的过程及遇到的问题。

环境:centos7

节点:

node1    192.168.100.133    Redis(主、从)

node2    192.168.100.130    Redis(主、从)

node3    192.168.100.131    Redis(主、从)

注:一台服务器上一主一从不一定是一一对应关系,即133上的从节点可能对应130上的主节点,131上的从节点可能对应131上的主节点。具体分配情况视redis集群随机分配而定。

安装过程

 
0. 需要先安装gcc编译器
  yum -y install gcc
 
1.在/usr/local/ 目录下新建redis-cluster作为redis集群目录
mkdir /usr/local/redis-cluster
 
2.在/usr/local/redis-cluster/目录下新建redis-6661, redis-6662目录,作为两个redis节点。
cd /usr/local/redis-cluster/
mkdir redis-6661 redis-6662
 
3.将解压后的redis-5.0.3文件分别安装到两个节点目录下
cd /usr/local/src/redis-5.0.3
make install PREFIX=/usr/local/redis-cluster/redis-6661/
cd /usr/local/redis-cluster/redis-6661
cp /usr/local/src/redis-5.0.3/redis.conf /usr/local/redis-cluster/redis-6661/bin/redis_6661.conf
vi /usr/local/redis-cluster/redis-6661/bin/redis-6661.conf
 
4.修改每个节点下的redis.conf文件
# bind  0.0.0.0                      修改每个Redis绑定的Ip地址。0.0.0.0表示所有节点都可以访问该redis
bind 192.168.100.133          (默认绑定127.0.0.1。192.168.***.***网段内的ip地址都可以访问)
protected-mode no               (关闭保护模式
cluster-node-timeout 15000    设置请求超时时间,默认为15秒,可以自行修改
appendonly yes                (aop日志开启,会每次进行写操作都记录一条日志)
cluster-config-file nodes_6661.conf
pidfile /var/run/redis_6661.pid
dbfilename dump_6661.rdb
appendfilename "appendonly_6661.aof"
port 6661                          (修改每个Redis的端口地址,分别从6661-6666)
cluster-enabled yes          (把每个Redis的集群设置打开   重要!!!
daemonize yes                 (把每个Redis改为后台运行)
5.启动redis,查看进程
cd /usr/local/redis-cluster/redis-6661/bin
./redis-server redis-6661.conf
注:
每个redis进程后必须有[cluster],标识以集群方式启动redis。
如果没有,说明在启动redis对应的conf文件中,没有配置 cluster-enabled yes
 

6.分别在三台虚拟机上重复上述操作。一共安装六个redis。同个服务器上可以复制,再修改涉及端口的配置;不同服务器上可以借助xftp传递配置文件,再修改ip地址与涉及端口的配置即可。

三个服务器六个redis节点启动。

7.在任意一个节点上,开始配置redis集群。此处在第一个节点为例。

cd /usr/local/redis-cluster/redis-6661/bin

[root@192 bin]# ./redis-cli --cluster create 192.168.100.133:6661 192.168.100.133:6662 192.168.100.130:6663 192.168.100.130:6664 192.168.100.131:6665 192.168.100.131:6666 --cluster-replicas 1

>>> Performing hash slots allocation on 6 nodes...
Master[0] -> Slots 0 - 5460
Master[1] -> Slots 5461 - 10922
Master[2] -> Slots 10923 - 16383
Adding replica 192.168.100.130:6664 to 192.168.100.133:6661
Adding replica 192.168.100.133:6662 to 192.168.100.130:6663
Adding replica 192.168.100.131:6666 to 192.168.100.131:6665
>>> Trying to optimize slaves allocation for anti-affinity
[OK] Perfect anti-affinity obtained!
M: 4947f609495d9e0add87ad4d6cb8f5ca708419bd 192.168.100.133:6661
   slots:[0-5460] (5461 slots) master
S: a90d682d1925363d986ad27a7a71d5add80c0e01 192.168.100.133:6662
   replicates 826943b1816238d307fcfb36ff63b77e8b2c2c7b
M: 826943b1816238d307fcfb36ff63b77e8b2c2c7b 192.168.100.130:6663
   slots:[5461-10922] (5462 slots) master
S: 4eee5def94ab07f09745aed1d6c067a5d96f8552 192.168.100.130:6664
   replicates 2b8c59badfaaa978cb9d606f2b364936fb5fd3f8
M: 2b8c59badfaaa978cb9d606f2b364936fb5fd3f8 192.168.100.131:6665
   slots:[10923-16383] (5461 slots) master
S: cb474159bc6ad24a8c6b814923a039e9add2ec39 192.168.100.131:6666
   replicates 4947f609495d9e0add87ad4d6cb8f5ca708419bd
Can I set the above configuration? (type 'yes' to accept): yes
>>> Nodes configuration updated
>>> Assign a different config epoch to each node
>>> Sending CLUSTER MEET messages to join the cluster
Waiting for the cluster to join
.......
>>> Performing Cluster Check (using node 192.168.100.133:6661)
M: 4947f609495d9e0add87ad4d6cb8f5ca708419bd 192.168.100.133:6661
   slots:[0-5460] (5461 slots) master
   1 additional replica(s)
M: 826943b1816238d307fcfb36ff63b77e8b2c2c7b 192.168.100.130:6663
   slots:[5461-10922] (5462 slots) master
   1 additional replica(s)
S: a90d682d1925363d986ad27a7a71d5add80c0e01 192.168.100.133:6662
   slots: (0 slots) slave
   replicates 826943b1816238d307fcfb36ff63b77e8b2c2c7b
S: 4eee5def94ab07f09745aed1d6c067a5d96f8552 192.168.100.130:6664
   slots: (0 slots) slave
   replicates 2b8c59badfaaa978cb9d606f2b364936fb5fd3f8
S: cb474159bc6ad24a8c6b814923a039e9add2ec39 192.168.100.131:6666
   slots: (0 slots) slave
   replicates 4947f609495d9e0add87ad4d6cb8f5ca708419bd
M: 2b8c59badfaaa978cb9d606f2b364936fb5fd3f8 192.168.100.131:6665
   slots:[10923-16383] (5461 slots) master
   1 additional replica(s)
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.

可以看到,redis自动在六个节点上执行分配hash槽。主从节点已经确定。

8.验证redis集群

在node1节点上存储一个key,在node2节点上获取。

 

安装集群过程中遇到的问题

redis集群版本决定是否需要安装Ruby环境,参考:https://blog.csdn.net/HeyShHeyou/article/details/108937980

关于安装、升级ruby版本,参考: https://blog.csdn.net/HeyShHeyou/article/details/108937863

重新分配redis集群节点,提示:Node *** is not empty. Either the node already knows other nodes。参考: https://blog.csdn.net/HeyShHeyou/article/details/108937649

[ERR] Node xxx not configured as a cluster node. 参考:  https://blog.csdn.net/HeyShHeyou/article/details/108937589

 

其他问题

" /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such file -- redis (LoadError)"

Ruby的redis接口没有安装,需要安装Redis接口,输入命令 " gem install redis " 进行安装。
此方式需要服务器上的Ruby版本大于2.0版本。如果需要升级服务器ruby,参考:
 
 
 
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在CentOS 7上部署Redis集群,可以按照以下步骤进行操作: 1. 在所有节点上安装Redis:使用以下命令在每个节点上安装Redis: ``` sudo yum install epel-release sudo yum install redis ``` 2. 配置主节点:选择一个节点作为主节点,并在其配置文件中进行以下更改: ``` sudo vi /etc/redis.conf ``` 找到并修改以下行: ``` bind 0.0.0.0 protected-mode no cluster-enabled yes cluster-config-file nodes.conf cluster-node-timeout 5000 appendonly yes ``` 保存并关闭文件。 3. 启动主节点:使用以下命令启动Redis服务器: ``` sudo systemctl start redis ``` 4. 添加从节点:选择其他节点作为从节点,并在其配置文件中进行以下更改: ``` sudo vi /etc/redis.conf ``` 找到并修改以下行(确保bind行与主节点相同): ``` bind 0.0.0.0 protected-mode no slaveof <主节点IP> <主节点端口> ``` 保存并关闭文件。 5. 启动从节点:使用以下命令启动Redis服务器: ``` sudo systemctl start redis ``` 6. 创建Redis集群:在任一节点上执行以下命令来创建Redis集群: ``` redis-cli --cluster create <主节点IP>:<主节点端口> <从节点IP>:<从节点端口> --cluster-replicas 1 ``` 如果有更多的从节点,可以继续添加它们的IP和端口。 7. 验证Redis集群:使用以下命令验证Redis集群是否成功创建: ``` redis-cli -c -p <主节点端口> ``` 进入Redis命令行之后,尝试执行一些Redis命令(例如:`SET key value`,`GET key`)来确保集群正常工作。 这样就完成了在CentOS 7上部署Redis集群的过程。请注意,这只是基本的集群配置,你可能需要根据你的需求进行其他配置和安全性增强。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值