Redis之集群环境部署

在进行redis集群部署之前,兄弟们最好先在自己的虚拟机上安装好单机版的redis,安装方法很简单,兄弟们可自行用度娘度一下,这里就不再赘述了,本人也是上班时间抽空偷偷写的该博文,也得处处小心被捉了!

好了,闲话少说,进入正题哈!

第一步 搭建ruby环境

        先来说说redis用啥来做集群,我们知道hadoop可以用ambari-server来做集群,那么Redis呢?

redis是用一个叫redis-trib.rbruby脚本。

redis-trib.rb是redis官方推出的管理redis集群的工具,集成在redis的源码src目录下(/opt/redis/src/)。是基于redis提供的集群命令封装成简单、便捷、实用的操作工具。

redis-trib.rb是redis作者用ruby完成的。所以redis集群需要先安装ruby环境。

兄弟们,一起来看看redis-trib.rb脚本在哪里,如下图

Redis之集群环境部署

好了,了解了ruby脚本,下面,一起来看看过程吧!

需要ruby脚本,就的搭建ruby环境。

1 使用yum安装ruby 错误过程重现:

本来想用yum install ruby 来安装,结果

Redis之集群环境部署

本人的机子上居然没有ruby的yum源,怎奈,天无绝人之路,办法有的是,去官网下载一下ruby的安装包,老老实实的,用解压方式安装吧。

可是,又过了一会,貌似yum又可以用了,得嘞,yum又复活了,还是用yum安装吧,

Redis之集群环境部署

安静的等他下载完吧,,执行上述命令,结束之后,用rpm -qa | grep ruby 查看一下是否安装成功,如果出来如下图所示的信息,则说明ruby安装成功。

Redis之集群环境部署

然后输入命令,irb ,测试一下ruby是否可用,见如下图

Redis之集群环境部署

进入到redis 目录,输入命令 ll *.rb 查看一下 ruby 脚本,看看该脚本长啥样,

Redis之集群环境部署

哦,原来是这样,挺秀气的。

再执行一下./redis-trib help 命令,看看该工具包提供了哪些命令和功能,但执行该命令的时候,发现了如下问题,说明没有安装redis与ruby的调用接口,之前只是安装了ruby的包管理器

Redis之集群环境部署

输入命令 gem install redis 时候,又报出如下错误,查了资料发现是Centos默认支持ruby到2.0.0,可gem 安装redis需要最低是2.2.2 。

Redis之集群环境部署

我的解决方案是,只能重新安装ruby了,再重新安装之前,建议卸载掉原先通过yum 方式安装的软件包,卸载方式为 yum remove 软件包名

执行 yum list installed | grep ruby 查看一下,是否将yum源安装的ruby全部删除掉,包括ruby包管理器

Redis之集群环境部署

2 在线方法安装ruby

在上述步骤中,重现了使用yum 方法安装ruby的全过程,当然,也不能百分之百保证能安装正确,可能跟系统有关,不过最保险的安装方法,我建议还是采用在线安装

执行 : wget https://cache.ruby-lang.org/pub/ruby/2.4/ruby-2.4.3.tar.gz 直接在线下载 ruby 安装包

在指定目录下 解压ruby (/usr/ruby)

tar -xvfz ruby-2.4.3 

然后 进入到 /usr/ruby/ 执行 ./configure --prefix =/usr/local/ruby (指定安装路径)

Redis之集群环境部署

在 /usr/ruby 目录下,直接编译安装,make && make install 

安装过程比较慢,慢慢等吧,,

安装完毕之后,进入到 $HOME/.bash_profile  配置一下ruby的全局命令

Redis之集群环境部署

Redis之集群环境部署

然后安装redis的gem包 :gem install redis-4.0.0.gem (redis-4.0.0.gem 可自行到网站下载

下载地址为: wget https://rubygems.global.ssl.fastly.net/gems/redis-4.0.0.gem)

至此,ruby环境搭建完毕

进入到redis的src目录,用ll  *.rb找到redis-trib.rb文件,

执行命令./redis-trib  help 可以查看该工具包提供的命令和功能

Redis之集群环境部署

 

第三步 搭建redis集群

这里搭建的是假分布式集群,也就是使用的6个redis实例来模拟,条件有限,没法构造六台虚拟机,电脑吃不消哈。

其实道理是一样的,,

1 创建 redis-cluster 目录

在 /usr/local/ 目录下,创建一个 redis-cluster 目录,今后准备把所有的redis子节点都存放在此目录中

Redis之集群环境部署

2 修改配置

在该目录下创建一个子目录 mkdir redis8001 ,并将 redis-cli redis-server redis-conf 分别复制到该目录下

Redis之集群环境部署

Redis之集群环境部署

修改 redis.conf 文件,分别修改 port=8001 daemonize=yes  cluster-enabled yes  appendable yes 

Redis之集群环境部署

修改完毕,怎么样,兄弟们,是不是很简单?

3 复制目录

接下来再创建五个类似的文件夹,redis8002 redis8003 redis8004 redis8005 redis8006 ,

然后把端口分别改成对应的值 

Redis之集群环境部署

4 复制ruby脚本到redis-cluster目录

把创建集群的ruby脚本复制到redis-cluster目录下。

Redis之集群环境部署

修改完毕,编写启动脚本,除非你想一个一个启动,否则,最后写一个集群启动脚本

Redis之集群环境部署

5 创建集群

进入到 redis-cluster 目录,执行如下命令,创建集群,

./redis-trib.rb  create --replicas  1  127.0.0.1:8001  127.0.0.1:8002  127.0.0.1:8003  127.0.0.1:8004  127.0.0.1:8005   127.0.0.1:8006

如下图所示,执行结果

Redis之集群环境部署

6 测试集群

当我连接某一个节点,比如8004进行测试的时候,发现报如下错误,6个节点居然没有在同一个集群中,

error) CLUSTERDOWN Hash slot not served(不提供集群的散列槽)

有可能是我把所有的 127.0.0.1 替换成 192.168.1.101 导致的错误,

Redis之集群环境部署

所以,赶紧把所有节点都加到同一个集群中,,

重复操作步骤5 

Redis之集群环境部署

搞定,,哈哈!

测试一下,我连接的是8004节点,塞入一个值之后,redis通过哈希槽算法,将值放到了节点8002上,如图所示

Redis之集群环境部署

至此,集群部署成功 !

经过坎坎坷坷,总算把集群部署成功了,大家可以参考一下整个过程,欢迎各位兄弟,提出宝贵意见!

转载于:https://my.oschina.net/yaukie/blog/1636035