分享下我自己在centos7系统安装redis分片集群的
1. 执行命令如下提示
/usr/local/redis-4.0.9/src/redis-trib.rb create --replicas 1 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005
/usr/bin/env: ruby: No such file or directory
/usr/local/redis-4.0.9/src/redis-trib.rb create --replicas 1 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005
这个是ruby没有安装 安装下ruby
yum install ruby
安装完,查看下版本
ruby -v
然后再次执行
/usr/local/redis-4.0.9/src/redis-trib.rb create --replicas 1 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005
会提示错误信息:/usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such file -- redis (LoadError)
from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in `require'
from /usr/local/redis-4.0.9/src/redis-trib.rb:25:in `<main>
2.这个是Ruby的redis接口没有安装,需要安装Redis接口,输入命令 " gem install redis " 进行安装
gem install redis
修改Ruby到2.5版本,都在RVM管理工具里面,Ruby官网上找到的,上面对RVM进行了简单的介绍:RVM是一个命令行工具,可以提供一个便捷的多版本Ruby环境的管理和切换
RVM需要通过CRUL来进行下载,那么我们要先安装CUEL,CURL是什么呢,它是Linux下的文件传输工具,利用URL的规则在命令行下工作,输入命令 " yum install curl " 进行安装,
准备一些环境得具备,先执行 yum install gcc-c++
yum install gcc-c++
输入命令 yum install curl进行安装curl
yum install curl
3.使用curl安装rvm ,输入命令 " curl -L get.rvm.io | bash -s stable " 进行安装
然后执行 gpg2 --keyserver hkp://pool.sks-keyservers.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
gpg2 --keyserver hkp://pool.sks-keyservers.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
提示错误:
错误信息: Could not resolve host: pool.sks-keyservers.net; Unknown error
使用hkp://pgp.mit.edu:80
或者hkp://keyserver.ubuntu.com:80
替换上面命令的hkp://pool.sks-keyservers.net
就可以解决啦! 再执行
gpg2 --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
然后再执行第3步 :使用curl安装rvm ,输入命令 " curl -L get.rvm.io | bash -s stable " 进行安装
这个就表示 安装成功
4.使用source使生效
source ~/.bashrc
source ~/.bash_profile
继续执行 source /etc/profile.d/rvm.sh,使之立即生效,而不必注销并重新登录,
输入命令 rvm list known,查看rvm中管理的所有ruby版本
source /etc/profile.d/rvm.sh
rvm list known
安装2.5的版本 rvm install 2.5.8
5.安装redis集群接口
gem install redis
6.再次创建
/usr/local/redis-4.0.9/src/redis-trib.rb create --replicas 1 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005
提示错误: Node 127.0.0.1:7000 is not configured as a cluster node.
这个打开这几个配置文件7000.conf , 7001.conf, 7002.conf, 7003, 7004.conf, 7005.conf , 将 cluster-enabled yes 注释去掉,保存。再次执行
/usr/local/redis-4.0.9/src/redis-trib.rb create --replicas 1 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005
如果提示有错误信息:[ERR] Node 127.0.0.1:7000 is not empty. Either the node already knows other nodes (check with CLUSTER NODES) or contains some key in database 0
解决办法:
1)、将需要新增的节点下aof、rdb等本地备份文件删除;
2)、同时将新Node的集群配置文件删除,即:删除你redis.conf里面cluster-config-file所在的文件;
3)、再次添加新节点如果还是报错,则登录新Node,./redis-cli–h x –p对数据库进行清除:
172.168.63.201:7001> flushdb #清空当前数据库
修改完之后继续执行/usr/local/redis-4.0.9/src/redis-trib.rb create --replicas 1 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005
至些,如上信息表示分布式集群搭建成功