Redis 分片机制+hash的算法(3种特性)+Redis的哨兵机制

  1. Redis分片机制
    =============

1.1 为什么需要分片机制

如果需要存储海量的内存数据,如果只使用一台redis,无法保证redis工作的效率. 大量的时间都浪费到了寻址当中.所以需要一种机制能够满足该要求.
采用分片机制实现:
在这里插入图片描述

1.2 Redis分片搭建

1.2.1 搭建注意事项

Redis服务的启动需要依赖于redis.conf的配置文件. 如果需要准备3台redis.则需要准备3个redis.conf的配置.

准备端口号:
1.6379
2.6380
3.6381

1.2.2 分片实现

在这里插入图片描述
修改端口号: 将各自的端口号进行修改.
在这里插入图片描述

启动3台redis服务器
在这里插入图片描述
校验服务器是否正常运行
在这里插入图片描述

1.2.3 关于分片的注意事项

1.问题描述:
当启动多台redis服务器之后,多台redis暂时没有必然的联系,各自都是独立的实体.可以数据数据的存储.如图所示.
2.如果将分片通过程序的方式进行操作,要把3台redis当做一个整体,所以与上述的操作完全不同.不会出现一个key同时保存到多个redis的现象.
在这里插入图片描述

1.3 分片入门案例

 /**
     * 测试Redis分片机制
     * 思考: shards 如何确定应该存储到哪台redis中呢???
     */
    @Test
    public void testShards(){
   
        List<JedisShardInfo> shards = new ArrayList<>();
        shards.add(new JedisShardInfo("192.168.126.129",6379));
        shards.add(new JedisShardInfo("192.168.126.129",6380));
        shards.add(new JedisShardInfo("192.168.126.129",6381));
        //准备分片对象
        ShardedJedis shardedJedis = new ShardedJedis(shards);
        shardedJedis.set("shards","redis分片测试");
        System.out.println(shardedJedis.get("shards"));
    }

总结:1.Redis分片机制的原理;2.搭载分片机制:复制三个conf文件到另外的文件夹中,更改各自的端口,启动测试;

1.4 一致性hash算法

1.4.0 常识说明

常识1: 一般的hash是8位16进制数. 0-9 A-F (24)8 = 2^32
常识2: 如果对相同的数据进行hash运算 结果必然相同的.
常识3: 一个数据1M 与数据1G的hash运算的速度一致.

1.4.1 一致性hash算法介绍

一致性哈希算法在1997年由麻省理工学院提出,是一种特殊的哈希算法,目的是解决分布式缓存的问题。 [1] 在移除或者添加一个服务器时,能够尽可能小地改变已存在的服务请求与处理请求服务器之间的映射关系。一致性哈希解决了简单哈希算法在分布式哈希表( Distributed Hash Table,DHT) 中存在的动态伸缩等问题 [2] 。
在这里插入图片描述

1.4.2 特性1-平衡性

概念:平衡性是指hash的结果应该平均分配到各个节点,这样从算法上解决了负载均衡问题 [4] 。(大致平均)
问题描述: 由于节点都是通过hash方式进行算计.所以可能出现如图中的现象.,导致负载严重不平衡
在这里插入图片描述
解决方法: 引入虚拟节点
在这里插入图片描述

1.4.3 特性2-单调性

特点: 单调性是指在新增或者删减节点时,不影响系统正常运行 [4] 。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值