哈希算法 如果我们用(用户id)%服务器机器数这样的方法来分配服务器。 虽然我们能保证数据的均匀性,但稳定性差,比如我们增加一个节点,会导致大量的映射失效。 1%3 == 1%4 2%3 == 2%4 3%3 != 3%4 4%3 != 4%4 这就难搞了,3之后的全乱了,直接体验了一把缓存雪崩。 ...
分类:
编程语言 时间:
2020-07-26 15:34:22
阅读次数:
75
目录 1、引出问题 2、结论 3、分析过程 4、总结 回到顶部 1、引出问题 在前面讲解 HashMap 的源码实现时,有如下几点: ①、初始容量为 1<<4,也就是24 = 16 ②、负载因子是0.75,当存入HashMap的元素占比超过整个容量的75%时,进行扩容,而且在不超过int类型的范围时 ...
分类:
编程语言 时间:
2020-07-14 12:58:55
阅读次数:
57
前言 上一节我们讲了哈希算法的四个应用,分别是安全加密、数据校验、唯一标识、散列函数。今天再来看看剩下的三个应用:负载均衡、数据分片、分布式存储。 可能大家已经发现了,这三个应用都是与分布式相关的。没错,今天我们来学习一下,哈希算法是如何解决这些分布式问题的。 应用五:负载均衡 负载均衡算法有很多, ...
分类:
编程语言 时间:
2020-07-06 20:00:29
阅读次数:
69
有点烧脑的签到题,第一次不知道的可能要找半天。。我是几天看下来都没发现,后来回过头又看了几遍才有发现。。网页如下: 可以看到flag是不完整的,这个不能用,找了半天在页面里都没发现线索,用burp也没发现啥可疑: 后来尝试对该密文MD5解密看看(注意MD5是哈希算法,这里简说加解密了),出来一个字符 ...
分类:
其他好文 时间:
2020-07-03 19:35:21
阅读次数:
243
概述 哈希表(Hash Table)也叫做散列表。基于快速存取的角度设计的一种空间换时间的存储结构。我们想想在14亿个身份证号码中找出其中一个身份证号,我们肯定不可能一个个去找,而我们可以将14亿条数据存放在哈希表中,然后根据哈希表结构就可以快速找到要找的数据。所以哈希表就是这种能够通过给定的关键字 ...
分类:
编程语言 时间:
2020-07-03 17:52:13
阅读次数:
104
1 #include<iostream> 2 using namespace std; 3 4 const int maxn=1002; 5 int arr[maxn]={0}; 6 7 //判断是否是质数 8 bool is_pri(int n){ 9 for(int i=n-1;i>=2;i-- ...
分类:
编程语言 时间:
2020-07-01 15:49:29
阅读次数:
54
1.概述 数据结构主要包括列表,字符串,跳表,map,set等,底层基于c实现。 2.sds redis自建的字符串,数据结构 struct sdshdr{ int len; int free; char buf[]; } 主要解决缓存溢出问题。 3.链表 redis自建的链表保存了双向信息,包括头 ...
分类:
其他好文 时间:
2020-06-29 00:09:25
阅读次数:
61
不处理! 在 memcached 节点失效的情况下,集群没有必要做任何容错处理。如 果发生了节点失效,应对的措施完全取决于用户。节点失效时,下面列出几种方 案供您选择: 忽略它! 在失效节点被恢复或替换之前,还有很多其他节点可以应对节 点失效带来的影响。 把失效的节点从节点列表中移除。做这个操作千万 ...
分类:
系统相关 时间:
2020-06-25 15:51:33
阅读次数:
61
SM3哈希算法 简要说明 消息长度(bits) 块大小(bits) 单词长度(bits) 消息摘要长度(bits) SM3 \(\lt 2^{64}\) 512 32 256 算法流程 位填充 记有消息$M$(位长度为$l$), 首先在消息尾补一个比特位0b1, 然后补$k$个比特位0b0, $k$ ...
分类:
编程语言 时间:
2020-06-23 18:57:28
阅读次数:
149
/** 1. 什么是哈希表 哈希表也叫散列表,是根据关键码值(Key value)而直接进行访问的数据结构。 2. 哈希算法的特点 哈希表是根据设定的哈希函数H(key)和处理冲突方法将一组关键字映射到一个有限的地址区间上,并以关键字在地址区间中的象作为记录在表中的存储位置,这种表称为哈希表或散列, ...
分类:
编程语言 时间:
2020-06-18 13:22:58
阅读次数:
63