mac安装redis3.0.5分布式集群

目录

一、redis cluster介绍
二、redis cluster的使用
三、测试redis
四、编写启动脚本

一、redis cluster介绍

  1. redis cluster的现状
    1) 节点自动发现
    2) slave -> master选举,集群容错
    3) Hot resharding 在线分片
    4) 集群管理 cluster xxx
    5) 基于配置(nodes.conf)的集群管理
    6) ASK转向/MOVED转向机制
  2. redis cluster架构
    1) redis-cluster架构图

    • 架构细节:
      (1) 所有的redis节点彼此互联(PING-PONG机制),内部使用二进制协议优化传输速度和带宽.
      (2) 节点的fail是通过集群中超过半数的节点检测失效时才生效.
      (3) 客户端与redis节点直连,不需要中间proxy层.客户端不需要连接集群所有节点,连接集群中任何一个可用节点即可
      (4) redis-cluster把所有的物理节点映射到[0-16383]slot上,cluster 负责维护node<->slot<->value

    2) redis-cluster选举,容错

    • (1) 领着选举过程是集群中所有master参与,如果半数以上master节点与master节点通信超过(cluster-node-timeout),认为当前master节点挂掉.
      (2) 什么时候整个集群不可用(cluster_state:fail),当集群不可用时,所有对集群的操作做都不可用,收到((error) CLUSTERDOWN The cluster is down)错误
      a: 如果集群任意master挂掉,且当前master没有slave.集群进入fail状态,也可以理解成进群的slot映射[0-16383]不完成时进入fail状态.
      b:如果进群超过半数以上master挂掉,无论是否有slave集群进入fail状态.

二、redis cluster的使用
要让集群正常工作至少需要3个主节点,在这里我们要创建6个redis节点,其中三个为主节点,三个为从节点,对应的redis节点的ip和端口对应关系如下:

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
  1. 下载redis
    http://download.redis.io/releases/redis-3.0.5.tar.gz
cd  /Users/duwei/software
tar xzvf redis-3.0.5.tar.gz

cd  /Users/duwei/software/redis-3.0.5
make install
  1. 创建集群目录
mkdir -p /Users/duwei/software/redisCluster
cd /Users/duwei/software/redisCluster
mkdir 7000
mkdir 7001
mkdir 7002
mkdir 7003
mkdir 7004
mkdir 7005
  1. 修改配置文件redis.conf
    vi redis.conf
    修改配置文件中的下面选项
port 7000 
daemonize yes 
cluster-enabled yes  
cluster-config-file nodes.conf 
cluster-node-timeout 5000 
appendonly yes  

修改完redis.conf配置文件中的这些配置项之后把这个配置文件分别拷贝到
7000/7001/7002/7003/7004/7005
目录下面

cp /Users/duwei/software/redis-3.0.5/redis.conf   /Users/duwei/software/redisCluster/7000
cp /Users/duwei/software/redis-3.0.5/redis.conf   /Users/duwei/software/redisCluster/7001
cp /Users/duwei/software/redis-3.0.5/redis.conf   /Users/duwei/software/redisCluster/7002
cp /Users/duwei/software/redis-3.0.5/redis.conf   /Users/duwei/software/redisCluster/7003
cp /Users/duwei/software/redis-3.0.5/redis.conf   /Users/duwei/software/redisCluster/7004
cp /Users/duwei/software/redis-3.0.5/redis.conf   /Users/duwei/software/redisCluster/7005

注意:拷贝完成之后要修改7001/7002/7003/7004/7005目录下面redis.conf文件中的port参数,分别改为对应的文件夹的名称
4. 分别启动6个redis实例

cd /Users/duwei/software/redisCluster/7000
redis-server redis.conf
cd /Users/duwei/software/redisCluster/7001
redis-server redis.conf
cd /Users/duwei/software/redisCluster/7002
redis-server redis.conf
cd /Users/duwei/software/redisCluster/7003
redis-server redis.conf
cd /Users/duwei/software/redisCluster/7004
redis-server redis.conf
cd /Users/duwei/software/redisCluster/7005
redis-server redis.conf

启动之后使用命令查看redis的启动情况
ps –ef|grep redis
如下显示则说明启动成功

➜  redis-3.0.5  ps -ef |grep redis
  501  1379     1   0 10:00上午 ??         0:09.64 /Users/duwei/software/redis-3.0.5/src/redis-server *:7000 [cluster]
  501  1381     1   0 10:00上午 ??         0:09.58 /Users/duwei/software/redis-3.0.5/src/redis-server *:7001 [cluster]
  501  1383     1   0 10:00上午 ??         0:09.68 /Users/duwei/software/redis-3.0.5/src/redis-server *:7002 [cluster]
  501  1385     1   0 10:00上午 ??         0:09.78 /Users/duwei/software/redis-3.0.5/src/redis-server *:7003 [cluster]
  501  1387     1   0 10:00上午 ??         0:09.63 /Users/duwei/software/redis-3.0.5/src/redis-server *:7004 [cluster]
  501  1389     1   0 10:00上午 ??         0:09.76 /Users/duwei/software/redis-3.0.5/src/redis-server *:7005 [cluster]
  1. 升级ruby安装gem
    安装gem需要ruby的版本在1.8.7以上,首先升级ruby
    查看当前版本
rubyv
ruby 2.0.0p481 (2014-05-08 revision 45883) [universal.x86_64-darwin14]

符合要求
gem安装redis ruby接口

gem install redis
  1. 执行redis的创建集群命令
cd /Users/duwei/software/redis-3.0.5/src
./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

至此redis集群搭建成功!
三、测试redis

redis-cli -c -p 7001
•   ➜  redis-3.0.5  redis-cli -c -p 7001127.0.0.1:7001> set test 123
•   OK
•   127.0.0.1:7001> get test
•   "123"
127.0.0.1:7001>

四、编写启动脚本

#!/bin/sh
source ~/.bash_profile
redispath=/Users/duwei/software/redis-3.0.5/src
redisClusterPath=/Users/duwei/software/redisCluster
returnValue=0
cd $redisClusterPath
pid=`ps -ef |grep -v "grep"|grep "redis-server" |awk '{print $2}'`

launcher(){
    $redispath/redis-server redis.conf
}
start(){
    cd ./7000
    launcher
    cd ../7001
    launcher
    cd ../7002
    launcher
    cd ../7003
    launcher
    cd ../7004
    launcher
    cd ../7005
    launcher
}
stop(){
    kill -9 ${pid}

}
case "$1" in
start)
    start
    ;;
stop)
    stop
    ;;
restart)
    stop
    start
    ;;
hup)
    hup
    ;;
*)
    printf 'Usage: %s {start|stop|restart}\n'
    exit 1
    ;;
esac
exit "$returnValue"
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值