zoukankan      html  css  js  c++  java
  • Redis Cluster集群的搭建

    redis集群搭建原理:

    redis是单线程,但是一般的作为缓存使用的话,redis足够了,因为它的读写速度太快了。

          官方的一个简单测试:

          测试完成了50个并发执行100000个请求

          设置和获取的值是一个256字节字符串。

          结果:读的速度是110000次/s,写的速度是81000次/s 

    redis cluster在设计的时候,就考虑到了去中心化,去中间件,也就是说,集群中的每个节点都是平等的关系,都是对等的,每个节点都保存各自的数据和整个集群的状态。每个节点都和其他所有节点连接,而且这些连接保持活跃,这样就保证了我们只需要连接集群中的任意一个节点,就可以获取到其他节点的数据。

    Redis 集群没有并使用传统的一致性哈希来分配数据,而是采用另外一种叫做哈希槽 (hash slot)的方式来分配的。

    redis cluster 默认分配了 16384 个slot,当我们set一个key 时,会用CRC16算法来取模得到所属的slot,然后将这个key 分到哈希槽区间的节点上,具体算法就是:CRC16(key) % 16384。所以我们在测试的时候看到set 和 get 的时候,直接跳转到了7000端口的节点。

    Redis 集群会把数据存在一个 master 节点,然后在这个 master 和其对应的salve 之间进行数据同步。当读取数据时,也根据一致性哈希算法到对应的 master 节点获取数据。只有当一个master 挂掉之后,才会启动一个对应的 salve 节点,充当 master 。

    1、安装ruby相关依赖

    1.1在线安装

    yum install rubygems -y
    gem install redis --version=3.0.6

    1.2离线安装脚本

    上传离线压缩包,解压,运行install.sh脚本即可

    2、配置运行6个redis服务

    2.1先创建3个目录

    2.2创建配置文件(总共7个,1公6私)

     

    将该文件发送到Windows桌面进行重命名,修改

    先将redis.conf重命名为redis-commons.conf(公共的),然后新建txt,命名为后缀为.conf文件

    redis-commons.conf中修改的地方,修改为如下即可

     创建6个私有配置文件

    redis-6379.conf(私有配置文件母版,需要将该文件再复制修改5个)

    然后将7个文件上传如下目录

    运行

    注意:先关闭单节点的redis

    接着启动6个Redis服务

     

    启动成功

    3、通过ruby脚本创建集群

     3.1  复制ruby脚本至安装路径

    3.2  创建集群

    M:Master主服务

    S:slave从服务

    4、测试集群

     检测集群

    redis-cli测试

     

    至此,redis集群搭建完成。。。。。

    注意:

    集群中至少应该有奇数个节点,所以至少有三个节点,每个节点至少有一个备份节点,(主节点、备份节点由redis-cluster集群确定)。并且当存活的主节点数小于总节点数的一半时,整个集群就无法提供服务了。

  • 相关阅读:
    [剑指 Offer 18. 删除链表的节点]
    [922. 按奇偶排序数组 II]
    [905. 按奇偶排序数组]
    Linux信号机制
    [1470. 重新排列数组]
    linux常用命令全称
    pidof查看服务的PID
    运行shell脚本提示syntax error near unexpected token `$'do ''
    influxdb安装
    jvm堆内存设置问题Java heap space、GC overhead limit exceeded
  • 原文地址:https://www.cnblogs.com/lxcy/p/8120124.html
Copyright © 2011-2022 走看看