Redis使用redis-trib.rb创建带密码的集群问题总结

3 月,跳不动了?>>> hot3.png

1、设定集群密码

各个节点的配置中设定密码,注意集群模式下,下面两行都需要

1

2

masterauth passwd123

requirepass passwd123

2、各个节点的配置中开启集群配置的相关选项,如下:

1

2

3

4

5

port 30001

cluster-enabled yes

cluster-config-file nodes-30001.conf

cluster-node-timeout 5000

appendonly yes

3、修改create-cluster工具

新版的Redis中给我们提供了利用redis-trib.rb创建集群的工具,就是:utils/create-cluster/create-cluster

我们稍作修改,把start部分的redis-server命令的参数,直接替换为各个节点配置文件路径

1

2

3

4

5

6

7

8

9

10

if [ "$1" == "start" ]

then

    while [ $((PORT < ENDPORT)) != "0" ]; do

        PORT=$((PORT+1))

        echo "Starting $PORT"

        # 通过redis-server并指定各个节点的redis配置文件路径

        ../../src/redis-server /redis/redis-$PORT.conf

    done

    exit 0

fi

4、修改redis-trib.rb脚本

如果Redis设定了密码,那么通过redis-trib.rb脚本创建集群时,是会类似这样的错误的:[ERR] Sorry, can’t connect to node *.*.*.*:7001

这是因为redis-trib.rb脚本中连接Redis时,并未设定密码,这确实是个很大的坑。我的解决方法时,修改该脚本中连接Redis时的代码,修改内容如下:

找到这一行:

1

@r = Redis.new(:host => @info[:host], :port => @info[:port], :timeout => 60)

修改为:

1

@r = Redis.new(:host => @info[:host], :port => @info[:port], :timeout => 60, :password => "你的密码")

5、修改完成后,依次运行:

./craete-cluster start

./craete-cluster create

即可启动集群

发布了132 篇原创文章 · 获赞 2 · 访问量 552

猜你喜欢

转载自blog.csdn.net/weixin_45839894/article/details/105198373