Redis集群搭建
Redis自带集群功能,通过简单配置就能够实现分片和主备的高可用集群。
对于Redis分片集群,没有主节点和从节点之分,客户端可以连接任一节点。此外,如果所有节点都没有备份,任何一个节点宕机都会导致整个集群不可用,Redis对于节点是否有效的检测需要一个投票机制,因此分片节点必须是奇数(这有点像ZooKeeper),一般来讲,每个分片节点都至少有一个备份节点,所以一个Redis分片集群一般至少有6个节点,否则还是单节点或是单节点主备吧。
Redis节点安装
由于找6台服务器或是虚拟机都太麻烦了,我们就用运行在不同端口的redis-server假装是一个集群的6个节点,这里我们使用7001到7006端口分配给6个Redis节点。
有关Redis编译安装可以参考之前章节。
节点配置文件
配置文件中有几处需要修改:
- 找到
port,将其改为该节点对应端口 - 找到
cluster-enabled,改为yes - 找到
daemonize,改为yes,开启守护进程模式
配置完成后,我们将节点依次启动。
开启集群模式
此时虽然节点都启动了,但是集群模式还没有开启,节点之间互相还没有关联,集群需要通过Redis自带的redis-trib.rb脚本实现,它可以在源码包的src文件夹下找到。
但是不得不吐槽的是这个Ruby脚本需要安装对应的解释器,而且还要安装一个依赖包,真不知道这里用Ruby是怎么想的,真的是相当麻烦,首先我们要安装Ruby(以Ubuntu为例):
apt-get intall ruby
然后使用gem安装Redis依赖:
gem install redis
但是由于众所周知的原因,gem源在大陆是不能直接访问的,如果无法通过包管理器下载,我们就只好手动把包下载下来安装,这里不多做介绍了。
最后执行Ruby集群搭建脚本即可。
./redis-trib.rb create --replicas 1 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 127.0.0.1:7006
注意:--replicas 1表示每个节点有1个副本,因此这里6个节点中有3个主节点,3个副本节点。
访问集群
我们可以用redis-cli连接任意一个节点,操作会自动响应到某个分片节点上,但是要注意,连接时必须指定-c参数,否则集群是不起作用的。
redis-cli -p 7001 -c

作者:Gacfox
版权声明:本网站为非盈利性质,文章如非特殊说明均为原创,版权遵循知识共享协议CC BY-NC-ND 4.0进行授权,转载必须署名,禁止用于商业目的或演绎修改后转载。