Redis3.0集群的安装

1、Redis集群的简介

      在redis3.0 以前,提供了Sentinel工具来监控个Master的状态,如果Master异常,则会做主从切换,将slave切换为master。当以前的master再次加入的时候,则会当成slave。其配置也是有点复杂,性能也是一般。现在redis 3.0 已经支持集群功能了,并且简单高效。

      对于Redis集群与基于哨兵的主从复制的区别的理解:
      Redis2.x版本,基于哨兵的主从复制,主节点的数据和从节点的数据是一样的。体现不了分布式集群的概念。
      在Redis3.0版本,提供了集群的实现。至少需要3个master节点。这个集群的实现体现了分布式,数据分布在多个个master的Redis服务器上。在集群的每个master节点,有对应的槽数,用于存储整个集群数据的一部分数据。


2、Redis集群的安装

      2.1  Redis集群的搭建,至少需要3个Master节点      

      2.2   创建一个文件夹 redis-cluster ,然后在其下面分别创建6个文件夹,如下操作:

              2.2.1    创建redis-cluster文件夹

#创建文件夹redis-cluster,用于存放Redis集群节点
(1)  cd /usr/local/
(2)  mkdir -p /usr/local/redis-cluster

              2.2.2    在redis-cluster文件夹下,创建6个文件夹

#创建代表Redis集群节点的文件夹
mkdir 7001 
mkdir 7002 
mkdir 7003  
mkdir 7004 
mkdir 7005  
mkdir 7006

      2.3  把安装Redis的配置文件 redis.conf 分配拷贝到 700* 文件夹目录下,进行修改各个redis.conf 文件的内容。也就是对 700* 下的每一个 redis.conf 文件进行修改:

# 对700* 目录下的 redis.conf 配置文件,做下面的修改
# 主要注意700*的修改
# 在修改的过程中,可以使用 linux 的字符替换  ( %s/str1/str2/g 替换 )
1、  daemonize yes
2、  port 700*
3、  bind 192.168.2.105                  (必须绑定本机的ip地址,深坑勿入)
4、  dir /usr/local/redis-cluster/700*   (指定数据的存放文件,必须是不同的目录,深坑勿入)
5、  cluster-enabled yes                 (启动集群模式)
6、  cluster-config-file nodes-700*.conf (这里700X最好和port对应。这个配置文件主要是,每一个节点都有一个配置文件,用于去获取其他节点的信息)
7、  cluster-node-timeout 5000
8、  appendonly yes                      (数据持久化的aof方式)

      2.4  把修改后的配置文件,分别考到各个文件夹下。注意每个文件夹要修改端口号,并且dir 和nodes文件,也要不一样。

      2.5  由于Redis的安装需要 ruby命令,所以需要安装ruby

     

# 安装ruby 和 redis 的ruby接口
yum install ruby
yum install rubygems
gem install redis

            2.5.1    gem install redis  遇到的问题

                这里可能无法安装,因为无法连接gem服务器:

[@zw_22_90 src]# gem install redis --version 3.0.0  
ERROR:  Could not find a valid gem 'redis' (= 3.0.0) in any repository
ERROR:  While executing gem ... (Gem::RemoteFetcher::FetchError)
                需要手工下载并安装:
wget https://rubygems.global.ssl.fastly.net/gems/redis-3.2.1.gem
gem install -l ./redis-3.2.1.gem
       2.6 首先到redis的安装目录下,执行 redis-trib.rb 的命令,创建集群

#创建集群
cd /usr/local/redis-3.0.0-rc2/src/
./redis-trib.rb create --replicas 1 192.168.2.105:7001 192.168.2.105:7002 192.168.2.105:7003 192.168.2.105:7004 192.168.2.105:7005 192.168.2.105:7006

#对于 --replicas 1 ,这里的1的理解
表示一个比例的数字,表示 master : slave = 1 :1
因为上面的Redis集群,只有6个节点,而且, master : slave = 1 :1
所以上面的Reids进去,建立成功后,将会是  3个主节点master,3个从节点slave

       2.7  启动Redis集群(依次启动Redis集群的节点)

 # 启动Redis 集群
 /usr/local/redis/bin/redis-server /usr/local/redis-cluster/7001/redis.conf 
 /usr/local/redis/bin/redis-server /usr/local/redis-cluster/7002/redis.conf 
 /usr/local/redis/bin/redis-server /usr/local/redis-cluster/7003/redis.conf
 /usr/local/redis/bin/redis-server /usr/local/redis-cluster/7004/redis.conf
 /usr/local/redis/bin/redis-server /usr/local/redis-cluster/7005/redis.conf
 /usr/local/redis/bin/redis-server /usr/local/redis-cluster/7006/redis.conf

      2.8  查看各个Redis集群节点的启动情况

[root@cent03 redis-cluster]# ps -ef | grep redis
root      1957     1  0 06:43 ?        00:00:01 /usr/local/bin/redis-server 127.0.0.1:6379      
root      3156     1  0 07:03 ?        00:00:00 /usr/local/redis/bin/redis-server 192.168.2.105:7001 [cluster]            
root      3160     1  0 07:03 ?        00:00:00 /usr/local/redis/bin/redis-server 192.168.2.105:7002 [cluster]            
root      3164     1  0 07:03 ?        00:00:00 /usr/local/redis/bin/redis-server 192.168.2.105:7003 [cluster]            
root      3168     1  0 07:03 ?        00:00:00 /usr/local/redis/bin/redis-server 192.168.2.105:7004 [cluster]            
root      3172     1  0 07:04 ?        00:00:00 /usr/local/redis/bin/redis-server 192.168.2.105:7005 [cluster]            
root      3176     1  0 07:04 ?        00:00:00 /usr/local/redis/bin/redis-server 192.168.2.105:7006 [cluster]            
root      3184  2566  0 07:04 pts/0    00:00:00 grep redis
     2.9  验证Redis的集群信息

           2.9.1  登录集群的任意一个节点

 # -c 表示集群模式
 /usr/local/redis/bin/redis-cli -c -h 192.168.2.105 -p 7001

           2.9.2  查看集群信息

192.168.2.105:7001> cluster info
cluster_state:ok
cluster_slots_assigned:16384
cluster_slots_ok:16384
cluster_slots_pfail:0
cluster_slots_fail:0
cluster_known_nodes:6
cluster_size:3
cluster_current_epoch:6
cluster_my_epoch:1
cluster_stats_messages_sent:28506
cluster_stats_messages_received:28434

           2.9.3  查看集群的节点信息

192.168.2.105:7001> cluster nodes
cabff9be14080ae12bfad0b199ae737639ec57bd 192.168.2.105:7003 master - 0 1477547152433 3 connected 10923-16383
1b362004cf174d9ecb72c0650117781618c52a70 192.168.2.105:7004 slave aae7ff08b8cc4bb5473044a52f926b6e82c96840 0 1477547150920 4 connected
286b1ed602c9e74f23b8bd8d66db50308b256d3e 192.168.2.105:7006 slave cabff9be14080ae12bfad0b199ae737639ec57bd 0 1477547150384 6 connected
f9a0fbd03254b0010bca6782867dfa65f21a2448 192.168.2.105:7002 master - 0 1477547150920 2 connected 5461-10922
987b27c96774f9c9bbbbf7bf3ccfe4e4b2e4c3e7 192.168.2.105:7005 slave f9a0fbd03254b0010bca6782867dfa65f21a2448 0 1477547151929 5 connected
aae7ff08b8cc4bb5473044a52f926b6e82c96840 192.168.2.105:7001 myself,master - 0 0 1 connected 0-5460

3、Redis集群的关闭

      3.1  依次关闭各个Redis 数据库服务

# -c 表示集群模式
[root@cent03 ~]# /usr/local/redis/bin/redis-cli -c -h 192.168.2.105 -p 7001 shutdown
[root@cent03 ~]# /usr/local/redis/bin/redis-cli -c -h 192.168.2.105 -p 7002 shutdown
[root@cent03 ~]# /usr/local/redis/bin/redis-cli -c -h 192.168.2.105 -p 7003 shutdown
[root@cent03 ~]# /usr/local/redis/bin/redis-cli -c -h 192.168.2.105 -p 7004 shutdown
[root@cent03 ~]# /usr/local/redis/bin/redis-cli -c -h 192.168.2.105 -p 7005 shutdown
[root@cent03 ~]# /usr/local/redis/bin/redis-cli -c -h 192.168.2.105 -p 7006 shutdown



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值