redis-cluster(集群)

redis-cluster(集群)

简介

  • redis cluster是Redis的分布式解决方案,在3.0版本推出后有效地解决了redis分布式方面的需求,在3.0之前为了解决容量高可用用方面的需求基本上只能通过客户端分片+redis sentinel或者代理(twemproxy、codis)方案解决、redis cluster非常优雅地解决了redis集群方面的问题
  • 功能
    • 高性能
    • 线性扩容
    • 高可用

搭建redis-cluster集群

  1. 创建6个节点,用于存储数据,信息都除了端口不同都是一样的

    vim redis-7000.conf
    # 插入信息
    
    port 7000
    daemonize yes
    dir "/opt/redis/data"
    logfile "7000.log"
    dbfilename "dump-7000.rdb"
    cluster-enabled yes  					#开启集群模式
    cluster-config-file nodes-7000.conf 	#集群内部的配置文件
    
  2. 启动6个数据库实例

    redis-server redis-7000.conf 
    redis-server redis-7001.conf 
    redis-server redis-7002.conf 
    redis-server redis-7003.conf 
    redis-server redis-7004.conf 
    redis-server redis-7005.conf 
    
  3. 检查其日志和进程状态

    # 查看日志
    cat 7000.log
    
    # 查看redis服务端  进程号
    netstat -tunlp|grep redis
    
    ps -ef |grep redis
    
  4. 开启分配redis集群状态,以及槽位分配,

    • 对redis集群管理的工具有几种,有豆瓣公司开源的codis工具,还有ruby
  5. 准备ruby的编程环境并下载,

    # 1.下载ruby的源码包
    wget https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.1.tar.gz
    # 2. 解压ruby源码
    tar -xvf ruby-2.3.1.tar.gz
    # 3. cd 到ruby-2.3.1,编译
    ./configure --prefix=/opt/ruby/
    # 4 安装 
    make && make install
    # 将其加入环境变量中
    vim /etc/profile
    插入内容
    export PATH=$PATH:/opt/ruby/bin 
    # 读出该文件,使其生效
    source /etc/profile
    
  6. 安装ruby操作redis模块

    # 1. 下载ruby操作redis的模块
    wget http://rubygems.org/downloads/redis-3.3.0.gem
    # 2. 安装
    gem install -l redis-3.3.0.gem
    # 3. 搜索创建redis集群的命令
    find /opt  -name  redis-trib.rb
    搜索结果:
    /opt/redis-4.0.10/src/redis-trib.rb
    
  7. 一键创建redis集群

    /opt/redis-4.0.10/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
    # 参数解析
    --replicas  进行身份授权 
    后面的1  代表,每个主节点,只有一个从节点
    
    
    # redis-5.03版本创建集群的命令为下
    redis-cli --cluster create 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 --cluster-replicas 1
    
    
  8. 查看集群节点,是否能正常写入数据

    redis-cli -p 7000 -c
    # 参数解析
    -p   指定数据库端口
    -c   指定开启集群模式
    
  9. 查看集群状态

    redis-cli -p 7000 cluster info  
    
    redis-cli -p 7000 cluster nodes  #等同于查看nodes-7000.conf文件节点信息
    
    集群主节点状态
    redis-cli -p 7000 cluster nodes | grep master
    集群从节点状态
    redis-cli -p 7000 cluster nodes | grep slave
    
  10. 查看集群状态

    [root@localhost /opt/redis/data]#redis-cli -p 7000 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_ping_sent:531
    cluster_stats_messages_pong_sent:586
    cluster_stats_messages_sent:1117
    cluster_stats_messages_ping_received:581
    cluster_stats_messages_pong_received:531
    cluster_stats_messages_meet_received:5
    cluster_stats_messages_received:1117
    
    
posted @ 2019-01-19 22:48  云丛  阅读(261)  评论(0编辑  收藏  举报