redis集群

本文档详细介绍了在CentOS系统中手动安装Redis集群的步骤,包括:安装依赖、下载Redis源码、编译安装、配置集群、解决安装过程中遇到的问题,以及集群的创建、添加节点和删除节点的操作。此外,还提供了遇到非空节点时的解决办法和相关参考资料链接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1

yum -y install gcc  gcc-c++  make    #redis由java编写要安装至此java包

 

2.

cd  /soft/redis-6.0.6    

 

3

make && make  install

 

4

 

如出现上述错误大概率是gcc版本低造成的,可先查看下gcc版本(gcc -v)解决办法如下

(yum -y install centos-release-scl )yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils)#升级到9版本

 

scl enable devtoolset-9 bash #临时启用9版本

echo "source /opt/rh/devtoolset-9/enable" >>/etc/profile #长期使用

继续make

 

 

5

[root@232 redis-6.0.6]# ./utils/install_server.sh 

 

 

如出现上述提示解决办法为

vim utils/install_server.sh

 

注释掉下面内容后再执行

 ./utils/install_server.sh 

 

 

 

默认一路回车即可也可更具需求更改端口号.配置文件路径,日志路径,数据存放路径等信息

 

6

vim /etc/redis/6231.conf    #根据自己配置文件名修改

protected-mode no        #关闭安全验证允许外网访问

bind   192.168.1.231    #只指定物理接口ip地址

#bind 127.0.0.1          关闭默认ip

port    6231                 #不允许相同

daemonize yes

cluster-enabled  yes            #开启集群

pidfile /var/run/redis_6231.pid    #不允许相同

cluster-config-file   nodes-6231.conf   #不允许相同

cluster-node-timeout 5000   #集群节点之间通信超时时间单位秒

:wq

7

/etc/init.d/redis_6231 stop  或者redisredis-cli  -h 192.168.0.231 -p 6231 shutdown(启动redis后用这个比较好用前者有时一直shutdown关闭不掉) 这两种方法其中一种关闭

/etc/init.d/redis_6231 start      启动redis

/etc/init.d/redis_6231 status     查看状态

 

8

redis-cli -h 192.168.0.231 -p 6231

 

9

仅在集群管理节点安装(参考https://www.cnblogs.com/lgjava/p/13177267.html

安装ruby(用rvm安装),rubgem

由于国内网络环境限制,翻墙安装的

 

gpg2 --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB   #加入签名

 

\curl -sSL https://get.rvm.io | bash -s stable

source  /etc/profile.d/rvm.sh

rvm list known 

rvm install 2.7.1 

 

wget http://mirror.centos.org/centos/7/os/x86_64/Packages/ruby-devel-2.0.0.648-36.el7.x86_64.rpm      #

 rpm -ivh ruby-devel-2.0.0.648-36.el7.x86_64.rpm  #装ruby-devel rpm软件包

 

gem install redis    #安装redis集群接口

cp /soft/redis-6.0.6/src/redis-trib.rb /usr/local/bin/  #全局可执行

 

10

创建集群

redis-cli --cluster create   192.168.0.231:6231 192.168.0.232:6232   192.168.0.233:6233   192.168.0.234:6234  192.168.0.235:6235   192.168.0.236:6236     --cluster-replicas 1

 

因为我新搭建的redis数据库为空不会出现下面报错,如果数据库有数据出现如下报错

[ERR] Node 192.168.4.54:6054 is not empty. Either the node already knows other nodes (check with CLUSTER NODES) or contains some key in database 0.

可参考https://www.cnblogs.com/wxj-106/p/7953773.html解决

解决办法大概下面几种摘自上面网址(如数据有用一定要备份)

解决方法:

1)、将需要新增的节点下aof、rdb等本地备份文件删除;

2)、同时将新Node的集群配置文件删除,即:删除你redis.conf里面cluster-config-file所在的文件;

3)、再次添加新节点如果还是报错,则登录新Node,./redis-cli–h x –p对数据库进行清除:

172.168.63.201:7001>  flushdb      #清空当前数据库

通过以上解决方法中的1)、2)或者3)之后再执行脚本,成功执行;

cat /var/lib/redis/6231/nodes-6231.conf  #集群配置文件信息

 

 

11 

redis-cli -c -h 192.168.0.231 -p 6231  #连接集群 (-c为连接集群命令)

192.168.0.231:6231> CLUSTER  info  #查看集群信息

192.168.0.231:6231> CLUSTER nodes #查看节点主从信息

至此结束

添加节点(从节点)

比如:添加7008节点(slave的添加方法,master为7007)
# 节点ID是主节点的ID
# 127.0.0.1:7008 是新加的从节点
# 127.0.0.1:7007 作为从节点的主节点

redis-cli --cluster add-node --cluster-slave --cluster-master-id db10a9d5c1662d9e3cee21c5776f2e9709f76619 127.0.0.1:7008 127.0.0.1:7007

删除节点

 

redis-cli --cluster del-node 192.168.0.231:6231 dc0a3d9b8861b5024caf63575fd8abee4f657096

如报错[ERR] Node 127.0.0.1:40010is not empty! Reshard data away and try again

为有数据,迁移数据重新分配槽点

 

 

 

检查集群节点

redis-cli --cluster  check 192.168.0.231:6231

集群不能工作的两种情况 半数以上主库挂掉或

参考文章

https://www.cnblogs.com/yfacesclub/p/11860927.html  #添加集群节点

https://www.infvie.com/ops-notes/redis5-ha-cluster-horizontal-expansion.html                                             #删除集群节点

 https://www.qedev.com/bigdata/68861.html           #删除集群节点

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值