Redis集群简介:

Redis 是一个开源的 key-value 存储系统,由于出众的性能,大部分互联网企业都用来做服务器端缓存。Redis 在3.0版本前只支持单实例模式,虽然支持主从模式、哨兵模式部署来解决单点故障,但是现在互联网企业动辄大几百G的数据,可完全是没法满足业务的需求,所以,Redis 在 3.0 版本以后就推出了集群模式。

Redis 集群采用了P2P的模式,完全去中心化。Redis 把所有的 Key 分成了 16384 个 slot,每个 Redis 实例负责其中一部分 slot 。集群中的所有信息(节点、端口、slot等),都通过节点之间定期的数据交换而更新。
Redis 客户端可以在任意一个 Redis 实例发出请求,如果所需数据不在该实例中,通过重定向命令引导客户端访问所需的实例。

Redis集群搭建:

1.创建6个虚拟机,修改配置文件:

注意,修改 redis.conf 配置和单点唯一区别是下图部分,其余还是常规的这几项:

port 9001(每个节点的端口号)

daemonize yes

bind 192.168.119.131(绑定当前机器 IP)

dir /home/redis/redis-3.0.5/data(数据文件存放位置)

pidfile /var/run/redis_9001.pid(pid 9001和port要对应)

cluster-enabled yes(启动集群模式)

cluster-config-file nodes9001.conf(9001和port要对应)

cluster-node-timeout 15000

appendonly yes

 

2.启动各个redis:

非集群部署微服务项目_ruby

非集群部署微服务项目_Redis_02

可以检查一下是否启动成功:ps -el | grep redis
看的出来,六个节点已经全部启动成功了。但是还不是集群状态。

3.安装集群所需软件
由于 Redis 集群需要使用 ruby 命令,所以我们需要安装 ruby 和相关接口。

yum install ruby

yum install rubygems

gem install redis

非集群部署微服务项目_Redis_03

4.创建集群:

/usr/local/redis-cluster/bin/redis-trib.rb create --replicas 1 192.168.153.130:9001 192.168.153.131:9002 192.168.153.132:9003 192.168.153.133:9004 192.168.153.135:9005 192.168.153.134:9006

非集群部署微服务项目_非集群部署微服务项目_04

简单解释一下这个命令:调用 ruby 命令来进行创建集群,--replicas 1 表示主从复制比例为 1:1,即一个主节点对应一个从节点;然后,默认给我们分配好了每个主节点和对应从节点服务,以及 solt 的大小,因为在 Redis 集群中有且仅有 16383 个 solt ,默认情况会给我们平均分配,当然你可以指定,后续的增减节点也可以重新分配。

 

M: 10222dee93f6a1700ede9f5424fccd6be0b2fb73 为主节点Id

S: 9ce697e49f47fec47b3dc290042f3cc141ce5aeb 192.168.119.131:9004 replicates 10222dee93f6a1700ede9f5424fccd6be0b2fb73 从节点下对应主节点Id

目前来看,9001-9003 为主节点,9004-9006 为从节点,并向你确认是否同意这么配置。输入 yes 后,会开始集群创建。

非集群部署微服务项目_redis_05

上图则代表集群搭建成功啦!!!

5. 验证

6.搭建时运行的问题:

redis集群部署rvm安装问题(如果下不了ruby,手动下载):