zoukankan      html  css  js  c++  java
  • redis-cluster 搭建

    • 当数据量太大的时候,应该考虑分布式,加机器,把数据分到不同的位置,分摊集中的压力

    • 数据如何分配?

      • Redis Cluster采用哈希分区规则,因此接下来会讨论哈希分区规则。即取余
      • Redis Cluster采用虚拟槽分区,Redis Cluster槽的范围是0 ~ 16383。槽是集群内数据管理和迁移的基本单位。采用大范围的槽的主要目的是为了方便数据的拆分和集群的扩展,每个节点负责一定数量的槽。
    • 搭建redis cluster

    1. 环境准备

      #通过配置,开启redis-cluster
      port 7000
      daemonize yes
      dir "/opt/redis/data"
      logfile "7000.log"
      dbfilename "dump-7000.rdb"
      cluster-enabled yes   #开启集群模式
      cluster-config-file nodes-7000.conf  #集群内部的配置文件
      cluster-require-full-coverage no  #redis cluster需要16384个slot都正常的时候才能对外提供服务,换句话说,只要任何一个slot异常,那么整个cluster不对外提供服务。 因此生产环境一般为no
      
      #6个配置文件  仅仅是端口的区别
      redis-7001.conf 
      redis-7002.conf 
      redis-7003.conf 
      redis-7004.conf 
      redis-7005.conf 
      
    2. 分配槽位

      1. 配置ruby脚本环境

        #yum安装  会自动给配置PATH环境变量
        yum install ruby  
        
        #编译安装
        wget https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.1.tar.gz
        #安装ruby
        tar -xvf ruby-2.3.1.tar.gz
        ./configure --prefix=/opt/ruby/
        make && make install
        #准备一个ruby命令
        #准备一个gem软件包管理命令
        #拷贝ruby命令到path下/usr/local/ruby
        cp /opt/ruby/bin/ruby /usr/local/
        cp bin/gem /usr/local/bin
        
      2. 下载ruby操作redis的模块

        wget http://rubygems.org/downloads/redis-3.3.0.gem   
        
      3. 用ruby的包管理工具 gem 安装这个模块

        gem install -l redis-3.3.0.gem
        
      4. 通过ruby一键分配redis-cluster集群的槽位

        #找到机器上的redis-trib.rb命令,用绝对命令创建 
        find / -name redis-trib.rb
        #开启集群  分配槽位
        /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
        

    • 六个节点 三个主节点被分配槽位,另外三个是从节点 ,负责从主节点复制数据

    • 成功
    1. 分配好集群后,可以向集群内写入数据了
    redis-cle -c  #指定集群模式,登录数据库
    
    1. 登录redis写入数据,发现槽位分配,且重定向之后,集群搭建成功

  • 相关阅读:
    小程序请求Django后台及路由跳转
    git操作
    github 介绍
    小程序01
    HTML5要点(四)对象全整理
    JavaScript要点(十二) HTML DOM 事件
    JavaScript要点(九)HTML DOM
    JavaScript要点(八) 闭包
    inferred 和 freefrom
    MySql数据库实现分布式的主从结构
  • 原文地址:https://www.cnblogs.com/kevin6/p/11799545.html
Copyright © 2011-2022 走看看