redis3.2.1集群介绍及在Linux操作系统上安装

一、redis集群介绍点击打开链接

Redis3.0版本之后支持Cluster.


二、redis集群安装

准备工作:

      1. 安装两台虚拟机,模拟6个节点,一台机器3个节点,创建出3 master、3 salve 环境。

      2. 虚拟机安装参考:http://blog.csdn.net/z3225167/article/details/79537280

      3. 两台虚拟机都是 CentOS ,一台 CentOS7 (IP:192.168.230.166),一台 CentOS7(IP:192.168.31.167) 。

安装过程:

      1. 下载并解压

                mkdir /tools   然后  cd /tools
                wget http://download.redis.io/releases/redis-3.2.1.tar.gz
                tar -zxvf redis-3.2.1.tar.gz

      2. 编译安装

                make && make install
                如果出现错误,需要安装gcc。   
                yum -y install gcc gcc-c++ libstdc++-devel

      3. 创建 Redis 节点

           在每台服务器的tools目录下创建redis_cluster目录,并且在redis_cluster下分别创建对应的端口目录,并且将redis.conf复制到对应的目录中  

                mkdir redis_cluster
                mkdir 7000 7001 7002
                cp redis.conf /tools/redis_cluster/7000
                cp redis.conf /tools/redis_cluster/7001
                cp redis.conf /tools/redis_cluster/7002

            分别修改对应的redis.conf

port  7000                         //端口7000,7002,7003        
#bind 127.0.0.1   //开启远程访问需要注释掉本机IP 并且把 protected-mode 改为 no 
protected-mode no //开启远程访问需要注释掉本机IP 并且把 protected-mode 改为 no
daemonize    yes      //redis后台运行
pidfile  /var/run/redis_7000.pid      //pidfile文件对应7000,7001,7002
cluster-enabled  yes                    //开启集群  把注释#去掉
cluster-config-file  nodes_7000.conf   //集群的配置  配置文件首次启动自动生成 7000,7001,7002
cluster-node-timeout  15000                //请求超时  默认15秒,可自行设置
appendonly  yes          //aof日志开启  有需要就开启,它会每次写操作都记录一条

在这里有必要说下如果当前redis不需要持久化,只作为缓存使用,可以进行如下配置

save "" //把其于的save注释掉,只留下save ""
maxmemory 1536mb  //限制内存使用,如果你的内存是2G 可以使用当前这个配置
maxmemory-policy allkeys-lru //设置清理缓存的策略,如果达到了你配置的缓存,则会清理
#下面为redis官网上的几种清理策略: 
#volatile-lru:从已设置过期时间的数据集(server.db[i].expires)中挑选最近最少使用的数据淘汰
#volatile-ttl:从已设置过期时间的数据集(server.db[i].expires)中挑选将要过期的数据淘汰
#volatile-random:从已设置过期时间的数据集(server.db[i].expires)中任意选择数据淘汰
#allkeys-lru:从数据集(server.db[i].dict)中挑选最近最少使用的数据淘汰
#allkeys-random:从数据集(server.db[i].dict)中任意选择数据淘汰
#no-enviction(驱逐):禁止驱逐数据
maxmemory-samples 3 默认值3,上面LRU和最小TTL策略并非严谨的策略,而是大约估算的方式,因此可以选择取样值以便检查

接着在另外一台机器上(192.168.230.167),的操作重复以上三步,只是把目录改为7003、7004、7005,对应的配置文件也按照这个规则修改即可

4. 启动各个节点:

第一台机器上执行
redis-server /tools/redis_cluster/7000/redis.conf
redis-server /tools/redis_cluster/7001/redis.conf
redis-server /tools/redis_cluster/7002/redis.conf
 
另外一台机器上执行
redis-server /tools/redis_cluster/7003/redis.conf
redis-server /tools/redis_cluster/7004/redis.conf
redis-server /tools/redis_cluster/7005/redis.conf

对应的机器查看各个节点的启动情况:

ps -ef | gerp redis
root      61020      1  0 02:14 ?        00:00:01 redis-server 192.168.230.166:7000 [cluster]    
root      61024      1  0 02:14 ?        00:00:01 redis-server 192.168.230.166:7001 [cluster]    
root      61029      1  0 02:14 ?        00:00:01 redis-server 192.168.230.166:7002 [cluster]    
 
netstat -tnlp | grep redis
tcp        0      0 192.168.230.166:17000             0.0.0.0:*                   LISTEN      61020/redis-server 
tcp        0      0 192.168.230.166:17001             0.0.0.0:*                   LISTEN      61024/redis-server 
tcp        0      0 192.168.230.166:17002             0.0.0.0:*                   LISTEN      61029/redis-server 
tcp        0      0 192.168.230.166:7000              0.0.0.0:*                   LISTEN      61020/redis-server 
tcp        0      0 192.168.230.166:7001              0.0.0.0:*                   LISTEN      61024/redis-server 
tcp        0      0 192.168.230.166:7002              0.0.0.0:*                   LISTEN      61029/redis-server

5. 创建集群

Redis 官方提供了 redis-trib.rb 这个工具,就在解压目录的 src 目录中,第三步中已将它复制到 /usr/local/bin 目录中,可以直接在命令行中使用了。使用下面这个命令即可完成安装。

redis-trib.rb  create  --replicas  1  192.168.230.166:7000 192.168.230.166:7001  192.168.230.166:7002 192.168.230.167:7003  192.168.230.167:7004  192.168.230.167:7005


查看集群情况

redis-trib.rb check 192.168.230.166:7000


如果创建集群出错,需要安装ruby环境:

安装ruby环境:

  1.yum install ruby

   

  2.yum install rubygems

   

  3.gem install redis

      

  Centos默认支持ruby到2.0.0,redis需要最低是2.2.2。解决办法是 先安装rvm 再把ruby版本升级到2.3.3 

       1.sudo yum install curl

       2.安装rvm

    curl -L get.rvm.io | bash -s stable 

  3.

   source /usr/local/rvm/scripts/rvm

  4.查看rvm库中已知的ruby版本

    rvm list known

  5.安装一个ruby版本

    rvm install 2.3.3

  6.使用一个ruby版本

    rvm use 2.3.3

  7.卸载一个已知版本

   rvm remove 2.0.0 

  8.查看版本

   ruby --version

  9.再安装redis

   gem install redis

其他错误处理:

解决方式 : 是因为之前创建redis集群时错误因起的,只需要把 redis.conf 中指定的文件删除即可,一般默认的文件名是: nodes.conf , 所有的节点下都有一个这样的文件,所以需要把所有的nodes.conf都删除即可

编写启动脚本:

#!/bin/sh
#chkconfig: 2345 80 90
#description:开机自动启动的脚本程序
redis-server /tools/redis_cluster/7000/redis.conf
redis-server /tools/redis_cluster/7001/redis.conf
redis-server /tools/redis_cluster/7002/redis.conf
chmod 777 start-all.sh   //设置权限
./start-all.sh 执行
如果需要开机启动则将写好的start-all.sh脚本移动到/etc/rc.d/init.d/目录下
cd /etc/rc.d/init.d/
chmod +x start-all.sh
添加脚本到开机自动启动项目中
chkconfig --add autostart.sh
chkconfig autostart.sh on

参考资料:http://www.jb51.net/article/122971.htm

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章