zoukankan      html  css  js  c++  java
  • redis集群

    4 redis集群概念

    4.1 为什么需要用到集群

    全量数据, 量很大,一台机器没有办法全部处理完,所以需要多台机器同时处理,才能达到我们想要的效果

    就类似于一大车货物,通过5辆马车来运输

    4.2 redis集群槽位概念

    虚拟槽分区巧妙地使用了哈希空间,使用分散度良好的哈希函数把所有的数据映射到一个固定范围内的整数集合,整数定义为槽(slot)。

    Redis Cluster槽的范围是0~16383。

    槽是集群内数据管理和迁移的基本单位。采用大范围的槽的主要目的是为了方便数据的拆分和集群的扩展,

    每个节点负责一定数量的槽。

    4. redis集群配置

    4.1 准备六个节点

    cd /opt/jq
    vim redis-7000.conf
    vim redis-7001.conf
    vim redis-7002.conf
    vim redis-7003.conf
    vim redis-7004.conf
    vim redis-7005.conf
    

    写入配置

    port 7000
    daemonize yes
    dir "/data/jq/7000"
    logfile "7000.log"
    dbfilename "dump-7000.rdb"
    cluster-enabled yes
    cluster-config-file nodes-7000.conf
    

    这6个节点配置文件都一样,仅仅是端口的不同

    [root@qishi666 jq]# sed "s/7000/7001/g" redis-7000.conf > redis-7001.conf
    [root@qishi666 jq]# sed "s/7000/7002/g" redis-7000.conf > redis-7002.conf
    [root@qishi666 jq]# sed "s/7000/7003/g" redis-7000.conf > redis-7003.conf
    [root@qishi666 jq]# sed "s/7000/7004/g" redis-7000.conf > redis-7004.conf
    [root@qishi666 jq]# sed "s/7000/7005/g" redis-7000.conf > redis-7005.conf
    

    创建这六个节点的文件目录

    mkdir -p /data/jq/{7000,7001,7002,7003,7004,7005}
    

    4.2 启动这六个节点

    cd /opt/jq
    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
    

    4.3 随便进入一个redis交互模式,写入数据,发现无法写入

    报错,没有分配哈希槽

    4.4 准备ruby环境,安装ruby并执行redis-trib.rb脚本

    分配redis集群状态,以及槽位分配,互联网企业,豆瓣公司开源的一个工具

    1 下载、编译、安装Ruby

    # 下载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
    cd ruby-2.3.1/
    ./configure --prefix=/opt/ruby/
    make && make install
    

    4.5 配置ruby环境

    4.5.1 配置ruby环境变量
    vim /etc/profile
    

    在PATH=后面添加ruby的环境变量路径

    PATH=/opt/ruby/bin:/opt/python36/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
    
    4.5.2 安装rubygem redis
    wget http://rubygems.org/downloads/redis-3.3.0.gem
    
    4.5.3 使用gem安装redis-3.3.0.gem工具
    gem install -l redis-3.3.0.gem
    
    4.5.4 安装redis-trib.rb命令

    当然,这一步并不是必须的,你可以找到redis的安装目录/opt/redis/src下,去执行这个脚本

    cp /opt/redis/src/redis-trib.rb /usr/local/bin/
    

    4.6 安装ruby gem 包管理工具

    4.6.1 下载gem包
    wget http://rubygems.org/downloads/redis-3.3.0.gem
    
    4.6.2 安装
    gem install -l redis-3.3.0.gem
    

    4.7 一键开启redis-cluster集群

    4.7.1 一条命令开启集群
    redis-cli --cluster create --cluster-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
    # 集群自动分配主从关系  7000、7001、7002为主 7003、7004、7005为从
    
    4.7.2 查看集群状态


    4.8 进入集群状态

    redis-cli -p 7000 -c
    

    -------------------------------------------

    个性签名:代码过万,键盘敲烂!!!

    如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢!

  • 相关阅读:
    python的mysql-connector和pymysql
    java知识整理
    Spring——使用自定义标签
    Eclipse maven 错误修正方法:An error occurred while filtering resources
    设计模式--模板模式
    编译Spring源码
    Lunix 命令
    (转)设计模式——策略模式
    JVM(一)
    SenjuFamily项目总结 之 Activiti 学习总结(一)
  • 原文地址:https://www.cnblogs.com/weiweivip666/p/13917209.html
Copyright © 2011-2022 走看看