位置:首页  >   后端编程  > redis3.0.5集群

redis3.0.5集群


参考:http://www.linuxidc.com/Linux/2015-08/121845.htm

1. 安装redis 参考官网文档   注意要make install

3. 创建redis节点

    我们将在两台Server上创建六个节点,每台3个,3主3从。

   首先在liang02上建立7000,7001,7002节点

  1)Server1

    cd /usr/local/

    mkdir redis_cluster  //创建集群目录

    mkdir 7000 7001 7002  //分别代表三个节点    其对应端口 7000 7001 7002

    创建7000节点为例,

    cd ./7000

    cp /usr/local/redis/redis.conf  ./    //拷贝到当前7000目录

    vi redis.conf    //编辑配置  主要修改一下几个参数

 

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

 

    配置好了,就相应地把这个修改后的配置文件拷贝到 7001  7002目录,注意要修改监听端口port 7001 7002.

    接下来,启动服务,进入节点目录

    依次执行  redis-server  redis.conf

    可以看到生成了appendonly.aof  nodes.conf

    ps -ef | grep redis 查看是否启动成功

      root 885 0.8 0.2 129452 2620 ? Ssl 20:10 0:21 redis-server *:7000 [cluster]
      root 887 0.8 0.2 129452 2616 ? Ssl 20:10 0:21 redis-server *:7001 [cluster]
      root 893 0.8 0.2 128356 2612 ? Ssl 20:10 0:21 redis-server *:7002 [cluster]

    netstat -tnlp | grep redis 可以看到redis监听端口

      tcp 0 0 0.0.0.0:7000 0.0.0.0:* LISTEN 885/redis-server *
      tcp 0 0 0.0.0.0:7001 0.0.0.0:* LISTEN 887/redis-server *
      tcp 0 0 0.0.0.0:7002 0.0.0.0:* LISTEN 893/redis-server *
      tcp 0 0 0.0.0.0:17000 0.0.0.0:* LISTEN 885/redis-server *
      tcp 0 0 0.0.0.0:17001 0.0.0.0:* LISTEN 887/redis-server *
      tcp 0 0 0.0.0.0:17002 0.0.0.0:* LISTEN 893/redis-server *

    我们除了看到 配置文件中设置的端口700*    还有700*+10000  (1700*), 前者是客户端访问的, 后者是集群内部节点之间访问的.

    注意,在多台Server间搭建集群,如果开了防火墙的,需要设置iptables开放上面所有端口.

 

  2) Server2

    步骤和Server1一样, 设置端口  7003  7004  7005



 

 4. 创建集群

  前面已经准备好了搭建集群的redis节点,接下来我们要把这些节点都串连起来搭建集群。官方提供了一个工具:redis-trib.rb  (/usr/local/redis/src/redis-trib.rb) 看后缀就知道这鸟东西不能直接执行,它是用ruby写的一个程序,所以我们还得安装ruby.

  yum -y install ruby ruby-devel rubygems rpm-build    //网上不明觉厉,都是这么安装的,就跟着这样玩吧

  再用 gem 这个命令来安装 redis接口    gem貌似是ruby的一个工具包  反正没错就是了。

  gem install redis    //等一会儿就好了

  当然,方便操作,两台Server都要安装。

 

  上面的步骤完事了,接下来运行一下redis-trib.rb

    /usr/local/redis/src/redis-trib.rb

 

Usage: redis-trib <command> <options> <arguments ...>

  reshard        host:port                   --to <arg>                   --yes                   --slots <arg>                   --from <arg>   check          host:port   call            host:port command arg arg .. arg   set-timeout    host:port milliseconds   add-node        new_host:new_port existing_host:existing_port                   --master-id <arg>                   --slave   del-node        host:port node_id   fix            host:port   import          host:port                   --from <arg>   help            (show this help)   create          host1:port1 ... hostN:portN                   --replicas <arg>

For check, fix, reshard, del-node, set-timeout you can specify the host and port of any working node in the cluster.

 

    看到这,应该明白了吧, 就是靠上面这些操作 完成redis集群搭建的.

    确认所有的节点都启动,接下来使用参数create 创建    (在Server1中来创建)

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

    解释下, --replicas  1  表示 自动为每一个master节点分配一个slave节点    上面有6个节点,程序会按照一定规则生成 3个master(主)3个slave(从)

    前面已经提醒过的 防火墙一定要开放监听的端口,否则会创建失败。

    运行中,提示Can I set the above configuration? (type 'yes' to accept): yes    //输入yes

    接下来 提示  Waiting for the cluster to join..........  安装的时候在这里就一直等等等,没反应,傻傻等半天,看这句提示上面一句,Sending Cluster Meet Message to join the Cluster.

    这下明白了,我刚开始在一台Server上去配,也是不需要等的,这里还需要跑到Server2上做一些这样的操作。

    在Server2, redis-cli -c -p 700*  分别进入redis各节点的客户端命令窗口, 依次输入 cluster meet 192.168.1.197 7000……

    回到Server1,已经创建完毕了。  //?????没成功!!

    查看一下 /usr/local/redis/src/redis-trib.rb check 127.0.0.1:7000

    到这里集群已经初步搭建好了。


0
文章属性
精彩评论