您的位置:首页 > 数据库 > Redis

CentOS7下搭建redis集群

2017-05-05 23:45 686 查看
大家可先参考我的另外一篇在windows7下搭建redis集群:http://blog.csdn.net/apathecrazyfan/article/details/71191054

1. 下载安装redis

$ wget http://download.redis.io/releases/redis-3.2.8.tar.gz $ tar xzf redis-3.2.8.tar.gz
$ cd redis-3.2.8
$ make


进入redis的安装目录,也就是解压后的目录,这里我把它move到了Documents目录下,运行:

$ src/redis-server


出现如下图表示redis服务器启动成功:



下面运行客户端测试以下:



由上可知单个redis服务器(也就是端口默认为6379的redis服务器)创建且启动成功。

2.    redis cluster集群搭建

两台Linux电脑:x.x.x.131 和 x.x.x.133

(1、)在ip地址为x.x.x.131的电脑的  /usr/local  下创建文件夹redis_cluster,再在redis_cluster下创建三个文件夹,分别命名为 7000,7001, 7002,将redis.conf文件复制到7000,7001和7002文件夹中,并参考我的上篇redis集群搭建文章,修改各自文件的相关属性,主要是修改端口号。

同理,在ip地址为x.x.x.133的电脑的  /usr/local  下创建文件夹redis_cluster,再在redis_cluster下创建三个文件夹,分别命名为 7003,7004, 7005,将redis.conf文件复制到7003,7004和7005文件夹中,并参考我的上篇redis集群搭建文章,修改各自文件的相关属性,主要是修改端口号。(因为一个redis.conf文件就相当于一个redis服务器)

(2、)启动redis服务器实例

    在ip地址为x.x.x.131的电脑上运行:

$ redis-server /usr/local/redis_cluster/7000/redis.conf
$ redis-server /usr/local/redis_cluster/7001/redis.conf
$ redis-server /usr/local/redis_cluster/7002/redis.conf

  在ip地址为x.x.x.133的电脑上运行:

$ redis-server /usr/local/redis_cluster/7003/redis.conf
$ redis-server /usr/local/redis_cluster/7004redis.conf
$ redis-server /usr/local/redis_cluster/7005/redis.conf



3.    执行redis的创建集群命令创建集群 

切换到redis的安装目录下,进入src文件夹,执行如下命令

./redis-trib.rb create --replicas 1 x.x.x.131:7000 x.x.x.131:7001 x.x.x.131:7002 x.x.x.133:7003 x.x.x.133:7004 x.x.x.133:7005


这时你会发现错误:

错误内容:/usr/bin/env: ruby: No such file or directory

这是因为少了ruby环境,安装ruby环境:

$ yum install ruby


接着执行redis集群创建命令,又发现错误:

./redis-trib.rb:24:in `require': no such file to load -- rubygems (LoadError) from ./redis-trib.rb:24

这是因为缺少rubygems组件,那么用yum 安装它:

$ yum install rubygems

接着执行redis集群创建命令,又发现错误,这是缺少redis的ruby接口,那安装它:
$ gem install redis
这里可能无法安装,因为无法连接gem服务器,所以需要先下个:

$ gem install -l ./redis-3.2.1.gem


注意:两台电脑都要安装ruby环境!

再次执行redis的集群创建命令,

./redis-trib.rb create --replicas 1 x.x.x.131:7000 x.x.x.131:7001 x.x.x.131:7002 x.x.x.133:7003 x.x.x.133:7004 x.x.x.133:7005


出现如下图所示,输入yes,redis集群创建成功:



从上面可以看到:(1)三个Master主节点,分别为①x.x.x.132:7000,②x.x.x.132:7001和③x.x.x.133:7003以及三个slave从节点,分别为④x.x.x.132:7002,⑤x.x.x.133:7004和⑥x.x.x.133:7005
(2)其中④是③的slave,⑤是①的slave,⑥是②的slave

4. 测试redis集群



下面是杀掉master节点①后的一些操作:





我们发现杀死x.x.x.132:7000 后,存在上面的  userName  在连接x.x.x.132:7001后仍然能在x.x.x.133:7004上得到 wb。这说明在Master主节点①x.x.x.132:7000挂掉后,它的从节点⑤x.x.x.133:7004继承了它,成为了新的Master主节点,这也符合redis的主从复制特点。

5. 注意事项:
(1、)在每台电脑上启动redis服务器时,它的配置文件里面有个 bind
绑定地址的项,要跟用 redis-trib.rb命令创建redis集群时的地址一致,还有就是不能写 127.0.0.1或localhost,否则无法创建redis服务器实例。

(2、)还有一个就是Linux系统的安全性问题,如果是测试用的话可以把Linux自带的firewall防火墙关掉,否则会出现两台电脑无法互相访问的问题,从而导致不能创建集群。但如果你是用来做服务器的话,建议大家把firewall卸掉,下载iptables防火墙,然后把各自的地址加到对方的白名单中。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: