• 【软考架构】2022年架构案例问题总结


    11月6号软考的大幕终于落下,通过这次考试发现自己离软考的大纲要求还差不少,在案例部分,因为没搞过嵌入式,所以嵌入式的题目直接忽略,最后一道题牵扯到边缘计算,直接把我搞蒙,所以没得选,做了关于数据库和缓存的题目,期间有两道题记忆特别深刻,在这总结一下。

    算法和一致性哈希算法的区别

    哈希算法

    哈希算法又叫散列算法,是将任意长度的二进制映射为较短的固定长度的二进制,这个小的二进制称为哈希值。简单来说就是把一段信息转换为固定长度的字符串。MD5和SHA-1是应用最广泛的哈希算法。
    主要特点如下

    • 不可逆
    • 无碰撞
    • 效率高
    • 无规律

    一致性哈希算法

    是一种特殊的哈希算法,将hash空间输出为一个环形,环形区域用0-2^32-1表示,沿顺时针由小到大。然后把缓存节点和我们的缓存对象数据hash运算以后分别映射到圆环上。

    二者区别

    1. 运算方式
      哈希算法是对节点的数量进行取模运算
      一致哈希算法是对 2^32 进行取模运算,是一个固定的值

    2. 应用场景
      哈希算法常用于信息处理、信息安全方面
      一致性哈希算法常用于分布式场景、大数据领域

    3. 容错性
      哈希算法数据迁移数据量大且成本高
      一致性哈希算法数据迁移量小(节点附近部分数据)且成本低

    4. 节点分布均匀性
      哈希算法分布均匀
      一致性哈希算法分布不均匀,采用虚拟节点解决这个问题

    Redis中使用布隆过滤器的优缺点

    布隆过滤器基本思想

    如果想要判断一个元素是不是在一个集合里,一般是将所有元素保存起来,然后通过比较确定。链表,树等等数据结构都是这种思路。但是随着集合中元素的增加,我们需要的存储空间越来越大,检索速度也越来越慢。但是散列表(又叫哈希表,Hash table)可以通过一个Hash函数将一个元素映射成一个位阵列(Bit array)中的一个点。我们只要看看这个点是不是1就可以知道集合中有没有它了。这就是布隆过滤器的基本思想。

    Redis中应用

    解决去重问题,比如某APP的推荐内容,推荐同一主题且不同的内容咨询给你。

    优缺点

    优点:节省空间,计算速度快
    缺点:误判

  • 相关阅读:
    C#(CSharp)入门实践项目(简易回合制游戏)
    基于java web的户籍管理系统的设计与实现
    看一遍学会Vue结合axios使用mockjs
    将邻接矩阵转换成图
    MHA高可用配置及故障切换
    快速排序
    如何实现 add[1][2][3] + 4 === 6?
    图论|684.冗余连接 685. 冗余连接 II
    echarts折柱混线图根据后台数据动态刷新显示数据
    为什么 Redis 要有哨兵机制?
  • 原文地址:https://blog.csdn.net/lzx5290/article/details/127725320