• redis的集群


    一. 集群

      1. 集群的概念

        集群由多个节点(Node)组成,Redis的数据分布在这些节点中。

        集群中的节点分为主节点和从节点:只有主节点负责读写请求和集群信息的维护;从节点只进行主节点数据和状态信息的复制。

      2. 集群的作用

        数据分区:数据分区(或称数据分片)是集群最核心的功能。

      3. 数据分区的方法

        - 哈希取余分区

        - 一致性哈希分区

        - 带虚拟节点的一致性哈希分区

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

          redis-cluster集群的槽的范围为 0~16383

    二. 通过Ruby脚本, 搭建集群

      1. 安装ruby环境并安装redis-trib.rb脚本

        https://www.cnblogs.com/q767498226/p/10704784.html

      2. 配置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

      3. 一键开启redis-cluster集群  

        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表示每个主节点有1个从节点;后面的多个{ip:port}表示节点地址,前面的做主节点,后面的做从节点。使用redis-trib.rb搭建集群时,要求节点不能包含任何槽和数据。

      4. 查看集群状态

        redis-cli -p 7000 cluster info

        

  • 相关阅读:
    Postgresql主从流复制+Redis集群部署
    数据仓库实时数据同步方案
    数据库与WEB服务器的配置
    HOSTS文件
    Android 命令设置获取、IP地址、网关、dns
    转:mysqld与mysqld_safe的区别
    mysql 5.7 创建用户报错ERROR 1364 (HY000): Field 'ssl_cipher' doesn't have a default value
    MySql 5.7中添加用户,新建数据库,用户授权,删除用户,修改密码
    监控网卡设备流量
    获取进程所有信息
  • 原文地址:https://www.cnblogs.com/q767498226/p/11110416.html
Copyright © 2020-2023  润新知