Redis 集群简介
Redis 是一个开源的 key-value 存储系统,由于出众的性能,大部分互联网企业都用来做服务器端缓存。Redis 在3.0版本前只支持单实例模式,虽然支持主从模式、哨兵模式部署来解决单点故障,但是现在互联网企业动辄大几百G的数据,可完全是没法满足业务的需求,所以,Redis 在 3.0 版本以后就推出了集群模式。
Redis 集群采用了P2P的模式,完全去中心化。Redis 把所有的 Key 分成了 16384 个 slot,每个 Redis 实例负责其中一部分 slot 。集群中的所有信息(节点、端口、slot等),都通过节点之间定期的数据交换而更新。
Redis 客户端可以在任意一个 Redis 实例发出请求,如果所需数据不在该实例中,通过重定向命令引导客户端访问所需的实例。
随随便便搭建一个集群
安装部署任何一个应用其实都很简单,只要安装步骤一步一步来就行了。下面说一下 Redis 集群搭建规划,集群至少需要6个节点(3主3从模式),我现在就要在已经有安装了 Redis 的一个 CentOS 下开始进行集群搭建。由于资源有限下列为伪集群,一样的。
1.我们计划集群中 Redis 节点的端口号为 6661-6666。
首先在一个Cluster文件夹下创建6个文件夹分别用6661、6662.....6666,cp一下redis.conf分别到这6个文件夹下。
2.搭建集群需要用到解压后的src下的:redis-trib.rb。从解压后的文件夹下找到src并将这个src分别复制到这6个文件夹下。
3.分别到6个目录下启动src下的server的命令:./redis-server ../redis.conf 启动,用:ps -ef|grep redis 查看redis端口开启情况。
4.需要用到一个ruby,安装ruby:①:yum install ruby ②:yum install rubygems
③:(可以把这个gem复制到/usr/local下) 安装ruby的包执行:gem install redis-3.3.5.gem
(这里推荐个下载gem的地址:https://download.csdn.net/download/qq_39693164/11096280)
搭建集群和搭建集群是不一样的,搭建集群需要用到ruby,到这里就打搭建好了。
5.搭建集群前面说到要用到redis-trib.rb,到src下运行:./redis-trib.rb create --replicas 1 ip:端口号 ip:端口号(总共有几个就空格在后面列出来)然后出现
>>> Creating cluster
>>> Performing hash slots allocation on 6 nodes...。。。等等一系列的你的ip和端口组合,之后询问你输入:yes,就OK!
[ok]All 16384 slots covered.就成功了。
验证一下:
依然是通过客户端命令连接上,通过集群命令看一下状态和节点信息等。
/usr/local/redis/bin/redis-cli -c -h (ip) -p (端口)
cluster info
cluster nodes
接下来可能就是动态扩容、增加节点和减少节点,重新分配槽大小等,当然,还有最重要的就是怎么和我们程序结合起来,以及如何更好的把 Redis 缓存集群发挥出应有的效果,这些才是最重要的。