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
即可启动集群