Redis集群安装–集群搭建及密码配置遇到的一些问题
网上关于Redis集群安装配置的文章很多,也比较全面,但每个人的需求不一样,本文搭建一个配置密码的Redis集群过程其中遇到的一些问题
其中我见到的以这篇文章最详细https://www.cnblogs.com/hello-daocaoren/p/8431902.html,很多详细步骤与这篇文章里面的大同小异,不想重新再写一遍了,但这篇文章配置的没有配置集群密码,本文就接以上文章记录下配置带密码的集群遇到的问题
根据上面链接提供的教程应该能够配置一个不带密码的Redis集群,上文章没有提到要安装perl,实际安装是需要安装perl,一般centos执行yum install perl即可安装。
本文接着上面文章说,在已配置基础集群的情况下配置带密码的Redis集群:
第一步:修改redis.conf配置文件
在6个redis.conf文件中配置以下密码信息,第一个masterauth主要用在slave同步master内容时,能过顺利通过验证,如果不配置slave将连不上master, requirepass用于配置本redis server的密码。集群中所有redis节点的masterauth和requirepass都应该配置成一样的;
1 2 3 |
masterauth 123456 requirepass 123456 |
第二步:修改client.rb添加密码
第一步中设置了集群中每个server的密码,我们通过redis-trib.rb构造集群时需要告知需要连接的redis的密码是什么,这个设置在client.rb中。如果不知道client.rb位置,可以通过
find / -name client.rb -print进行查找,我的文件位置在/usr/local/lib/ruby/gems/2.5.0/gems/redis-3.2.2/lib/redis/client.rb,修改其中的password项为密码123456。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
class Redis class Client DEFAULTS = { :url => lambda { ENV["REDIS_URL"] }, :scheme => "redis", :host => "127.0.0.1", :port => 6379, :path => nil, :timeout => 5.0, :connect_timeout => 5.0, :password => "123456", :db => 0, :driver => nil, :id => nil, :tcp_keepalive => 0, :reconnect_attempts => 1, :inherit_socket => false } |
第三步: 关闭所有redis节点并清空环境
清空之前环境的目的主要是为了避免受之前环境影响,需要清理掉的文件有:
- appendonly.aof文件,即操作日志备份文件,此文件为了恢复数据;
- nodes-7000.conf到nodes-7005.conf的配置文件
- redis_7000.pid到redis_7005.pid
- rdb持久化文件,如果配置了RDB持久化策略,RDB镜像文件也要清除
第四步: 重启所有redis
重启所有的redis节点
1 2 3 4 5 6 7 8 9 10 |
./redis-server /app/redis-cluster/7000/redis.conf // 确保所有节点启动正常 root 6214 1 0 17:51 ? 00:00:00 ./redis-server 192.168.80.130:7000 [cluster] root 6216 1 0 17:51 ? 00:00:00 ./redis-server 192.168.80.130:7001 [cluster] root 6218 1 0 17:51 ? 00:00:00 ./redis-server 192.168.80.130:7002 [cluster] root 6226 1 0 17:51 ? 00:00:00 ./redis-server 192.168.80.130:7003 [cluster] root 6230 1 0 17:51 ? 00:00:00 ./redis-server 192.168.80.130:7004 [cluster] root 6239 1 0 17:51 ? 00:00:00 ./redis-server 192.168.80.130:7005 [cluster] |
第五步: 重新构造集群
使用redis-trib.rb重新构造集群,并输入yes确认,等待构造分片成功
1 2 |
./redis-trib.rb create --replicas 1 192.168.80.130:7000 192.168.80.130:7001 192.168.80.130:7002 192.168.80.130:7003 192.168.80.130:7004 192.168.80.130:7005 |
第六步: 测试
使用以下命令,连接一个redis节点,并保证每个master节点都有转发到,下面可看出,连的是192.168.80.130的7000节点,但是转发到7001和7002的都成功了;更进一步连接所有的slave节点,观察slave节点和master节点的数据是否保持了一致
1 2 3 4 5 6 7 8 9 10 11 12 |
./redis-cli -c -h 192.168.80.130 -a 123456 -p 7000 192.168.80.130:7000> set zz zz -> Redirected to slot [14415] located at 192.168.80.130:7002 OK 192.168.80.130:7002> set yy yy -> Redirected to slot [7551] located at 192.168.80.130:7001 OK 192.168.80.130:7001> set ww ww OK 192.168.80.130:7001> |
以上是所有步骤,其中遇到了一些问题,后续再整理记录