Redis3.0 及其之后的版本提供了 redis-cluster 集群支持,用于在多个redis节点间共享数据,以提高服务的可用性。
构建 redis-cluster 集群可以通过 redis-trib.rb 工具来完成。redis-trib.rb 是redis官方提供的一个集群管理工具,集成在redis安装包的 src 目录下。redis-trib.rb 封装了redis提供的集群命令,使用简单、便捷。
因为 redis-trib.rb 是由ruby语言编写的,所以使用该工具需要ruby语言环境的支持。
$ ruby -v
ruby 2.3.1p112 (2016-04-26) [x86_64-linux-gnu]
redis-cluster集群
1、配置
要启用redis-cluster集群,需要先修改redis配置文件集群配置部分的内容
redis.conf
################################ REDIS CLUSTER ###############################
# 启用redis-cluster集群
cluster-enabled yes
# 集群节点配置文件
# 该文件无需手工修改,由redis自动维护(创建和更新)
# 需要注意,单机运行多实例时,确保该文件没有被其他实例覆盖(不允许重名)
cluster-config-file nodes-6377.conf
# 节点超时时长(毫秒)
cluster-node-timeout 15000
为了方便进行演示,这里分别以端口 6377、6378、6379 各启用一个实例来代表不同的redis服务器
2、创建集群
创建集群使用 redis-trib 的 create
命令完成,create
命令的格式为:
create host1:port1 ... hostN:portN
默认情况下,ruby 是无法识别redis的,直接执行 redis-trib.rb create IP:PORT
将会报错
$ ./redis-trib.rb create 192.168.206.128:6377 192.168.206.128:6378 192.168.206.128:6379
/usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such file -- redis (LoadError)
from /usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from ./redis-trib.rb:25:in `<main>'
所以需要先为ruby安装redis第三方接口,执行命令 gem install redis
即可
$ sudo gem install redis
[sudo] password for zhangcs:
Fetching: redis-4.0.1.gem (100%)
Successfully installed redis-4.0.1
Parsing documentation for redis-4.0.1
Installing ri documentation for redis-