配置集群
只需要将每个数据库节点的 cluster-enabled打开即可,每个集群至少需要3个主数据库才能正常运行。
cluster-enabled yes
集群会将当前节点记录的集群状态持久化地存储在指定文件,每个节点对应的文件必须不同。
cluster-config-file nodes-6381.conf
每个节点启动后都会输出类似下面的内容:
No cluster configuration found, I'm 4b7cbeb343a2ba14d5b1b14457600624c076c157
4b7cbeb343a2…表示该节点的运行ID,运行ID是节点在集群中的唯一标识;同一个运行ID,可能地址和端口是不同的。
启动后,可连接任意一个节点使用 INFO 命令来判断集群是否正常启用了:
127.0.0.1:6381> info cluster
# Cluster
cluster_enabled:1
##1表示集群正常启用
现在每个节点都是完全独立的,下面将它们加入同一个集群里。
Redis源代码中提供了一个辅助工具redis-trib.rb可以非常方便地完成这一任务。因为redis-trib.rb是用Ruby语言编写的,所以运行前需要在服务器上安装Ruby程序。redis-trib.rb 依赖于 gem 包 redis,可以执行 gem install redis来安装。
使用redis-trib.rb来初始化集群,只需要执行:
$ /path/to/redis-trib.rb create --replicas 1 127.0.0.1:6380 127.0.0.1:6381 127.0.0.1:6382 127.0.0.1:6383 127.0.0.1:6384 127.0.0.1:6385
其中 create参数表示要初始化集群,--replicas 1表示每个主数据库拥有的从数据库个数为1 。
执行完后,redis-trib.rb会输出如下内容:
>>> Creating cluster
Connecting to node 127.0.0.1:6380: OK
Connecting to node 127.0.0.1:6381: OK
Connecting to node 127.0.0.1:6382: OK
Connecting to node 127.0.0.1:6383: OK
Connecting to node 127.0.0.1:6384: OK
Connecting to node 127.0.0.1:6385: OK
>>> Performing hash slots allocation on 6 nodes...
Using 3 masters:
127.0.0.1:6380
127.0.0.1:6381
127.0.0.1:6382
Adding replica 127.0.0.1:6383 to 127.0.0.1:6380
Adding replica 127.0.0.1:6384 to 127.0.0.1:6381