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 #删除集群节点