搭建redis集群

1、redis集群介绍

  Redis 集群是一个提供在多个Redis节点间共享数据的程序集。可以自动分割数据到不同的节点上,并且集群使用了主从复制模型,每个节点都会有N-1个复制品,所以整个集群的部分节点失败或者不可达的情况下也能够继续处理命令。

2、安装redis数据库

  http://www.cnblogs.com/origalom/p/6228537.html

3、创建redis集群目录

  redis集群要求至少3个主节点和3个从节点,所以需要创建6个redis实例目录。

1 cd /usr/local/redis/     # 进入redis安装目录
2 mkdir 7000 7001 7002 7003 7004 7005   # 创建集群目录
3 cp redis.conf 7000         # 将配置文件分别拷贝到集群实例目录中
4 cp redis.conf 7001
5 cp redis.conf 7002
6 cp redis.conf 7003
7 cp redis.conf 7004
8 cp redis.conf 7005

4、修改集群实例配置

  分别修改集群实例目录下的配置文件,将文件内容中数据修改成下发所示(如果是不同的服务器,则在bind下绑定该服务器的ip):

1 daemonize    yes                          //redis后台运行
2 pidfile  /var/run/redis_7000.pid          //pidfile文件对应7000,7002,7003,和文件名一致
3 port  7000                                //端口7000,7002,7003,和文件名一致
4 cluster-enabled  yes                      //开启集群  把注释#去掉
5 cluster-config-file  nodes_7000.conf      //集群的配置  配置文件首次启动自动生成 7000,7001,7002,和文件名一致
6 cluster-node-timeout  5000                //请求超时  设置5秒够了
7 appendonly  yes                           //aof日志开启  有需要就开启,它会每次写操作都记录一条日志

5、启动实例

  利用命令bin/redis-server 7000/redis.conf启动实例,然后将7000换成其他的端口号即可启动其他的集群实例,然后将实例全部启动。利用ps -ef|grep redis进行查看:

搭建redis集群

6、安装ruby

  启动redis集群,需要用到redis-trib.rb 这个工具,因为这个工具是ruby写的,所以需要ruby环境的支持,我们需要安装下ruby环境, 否则无法运行此工具。

1 wget https://cache.ruby-lang.org/pub/ruby/2.4/ruby-2.4.2.tar.gz
2 tar -xzvf ruby-2.4.2.tar.gz
3 cd ruby-2.4.2
4 ./configure --prefix=/usr/local/ruby       # 指定路径编译
5 make && make install
6 ## 等待安装完成
7 gem install redis     # 如果用sudo提示没有gem时,可指定gem完整路径,目录为$RUBY_HOME/bin

7、为redis创建集群

  使用命令去启动集群:

  /usr/local/redis/bin/redis-trib.rb create --replicas 1 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005

  如果是不同服务器之间搭建集群,请使用服务器的ip地址进行操作,而不是127.0.0.1

  如果此时出现错误:/usr/bin/env: ruby: No such file or directory错误,有可能是因为ruby安装的目录非系统认为的 /usr/bin/ruby,解决方法为:在系统默认运行ruby的位置[/usr/bin/ruby]创建一个symlink(相当于win下的快捷方式),指向ruby的实际位置[/usr/local/bin/ruby]

  命令是:ln -s /usr/local/ruby/bin/ruby /usr/bin/ruby

  启动成功界面:

搭建redis集群

   说明:如果使用的是公网的ip,那么防火墙出了需要开通上面的端口外,还需要开通集群总线的端口,集群总线端口为配置端口+10000。 如果没有开通集群总线端口,在创建集群时,会一直Waiting for the cluster to join。

8、进入redis集群环境

  /usr/local/redis/bin/redis-cli -c -p 7001