记一次redis集群搭建的问题处理

1.复制3份conf文件,用来起不同端口的3个redis应用

修改conf:
port 6399
bind 10.61.70.136 183.61.70.136
dir /data/redis/data/
2.分别将3个redis启动起来
./redis-server ../conf/redis.conf
3.集群启动
./redis-trib.rb create --replicas 0 192.168.10.5:6379 192.168.10.5:6389 192.168.10.5:6399
--replicas 后面跟的参数0表示每个集群节点复制主从的个数
4.报错解决
这里会报很多错,首先是提示要安装ruby
因为redis-trib.rb是一个ruby脚本
注意了,ruby需要用源码安装,yum安装的ruby会提示版本过低,源码安装2.2以上版本
./configure
make && make install
源码安装的时候可能提示prelude.c相关的错误
这里可以不用担心,这里是因为c的函数里面不能包含#注释,将prelude.c提示的那几行注释删掉重新执行即可


然后这个脚本创建redis集群,会先用一个redis客户端去访问,这个客户端是rubygems提供的
安装rubygems:
下载源码解压,然后进入文件夹
执行:ruby setup.rb
可能报错
ERROR: While executing gem ... (Gem::DocumentError)
RDoc is not installed: no such file to load -- rdoc/rdoc
执行yum install rdoc
然后安装ruby对redis的客户端
gem install redis
若提示no such file to load -- zlib,则是需要zlib模块,使用yum install zlib zlib-devel ;在这里我执行yum没能解决
进入ruby的安装目录,在ext/zlib可以编译安装此动态模块
cd ruby-2.5.0/ext/zlib/
ruby extconf.rb
make
提示No rule to make target `/include/ruby.h'
使用find发现此文件存在,但是Makefile里使用的变量去寻找出错,所以更改Makefile:
找到这一行    zlib.o: $(top_srcdir)/include/ruby.h
将其更改为    zlib.o:../../include/ruby.h
然后make && make install
再执行gem install redis
此时,再进行启动集群
./redis-trib.rb create --replicas 0 192.168.10.5:6379 192.168.10.5:6389 192.168.10.5:6399
一般到这里就成功了,若这里不报其他错,直接提示:
[ERR] Sorry, can't connect to node 192.168.10.5:6379
1.检测防火墙端口是否通
2.服务启动时是否这个ip,然后亲自用redis-cli -h 192.168.10.5 -p 6379 尝试
3.发现redis-cli正常,但是依然不能启动集群,检测配置文件是否启用了密码
requirepass 123456
这时需要将密码写入ruby连接redis的ruby脚本
find / -name client.rb  找到这个ruby脚本
可以使用gem list 来查看自己安装的redis客户端版本,我这里是4.0.1,所以直接找和4.0.1相关路径的脚本
vim  /usr/local/lib/ruby/gems/2.5.0/gems/redis-4.0.1/lib/redis/client.rb
找到这行 :password => nil, 
将后面的nil改为你的密码 :password => "123456",
再次启动
 ./redis-trib.rb create --replicas 0 192.168.10.5:6379 192.168.10.5:6389 192.168.10.5:6399

猜你喜欢

转载自blog.csdn.net/Match_qz/article/details/79193109