大家可先参考我的另外一篇在windows7下搭建redis集群:http://blog.csdn.net/apathecrazyfan/article/details/71191054
$ 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服务器)创建且启动成功。
两台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
切换到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-trib.rb:24:in `require': no such file to load -- rubygems (LoadError) from ./redis-trib.rb:24
这是因为缺少rubygems组件,那么用yum 安装它:
$ yum install rubygems
$ gem install redis
这里可能无法安装,因为无法连接gem服务器,所以需要先下个:
$ gem install -l ./redis-3.2.1.gem
再次执行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
下面是杀掉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的主从复制特点。
(1、)在每台电脑上启动redis服务器时,它的配置文件里面有个 bind 绑定地址的项,要跟用 redis-trib.rb命令创建redis集群时的地址一致,还有就是不能写 127.0.0.1或localhost,否则无法创建redis服务器实例。
(2、)还有一个就是Linux系统的安全性问题,如果是测试用的话可以把Linux自带的firewall防火墙关掉,否则会出现两台电脑无法互相访问的问题,从而导致不能创建集群。但如果你是用来做服务器的话,建议大家把firewall卸掉,下载iptables防火墙,然后把各自的地址加到对方的白名单中。