There are several reasons why learning Redis can be beneficial:
首先来看一下dict结构体,是redis的哈希表实现,这里重要的是渐进式rehash。rehash就是扩容操作,防止链变长严重影响哈希表的性能。
type:指向字典类型结构(dictType)的指针,该结构定义了字典的操作函数,如插入、查找、删除等。
哈希洪水攻击(Hash-Flooding Attack)是一种拒绝服务攻击(Denial of Service),旨在使服务器陷入瘫痪。攻击者利用哈希表数据结构的特性,通过构造大量具有相同哈希值的输入数据,使服务器在处理这些数据时消耗大量的计算资源和内存,导致服务器无法正常响应其他合法请求。
哈希洪水攻击的原理是利用哈希表中的哈希冲突(碰撞)问题。在哈希表中,不同的键(Key)通过哈希函数映射到不同的位置,但由于哈希函数的限制,不同的键可能会映射到相同的位置,即发生哈希冲突。当攻击者构造大量具有相同哈希值的输入数据时,这些数据会被存储在哈希表的同一个位置上,导致哈希表的性能急剧下降,服务器无法正常处理其他请求。
SipHash算法是一种针对短消息设计的伪随机函数族,可用于消息认证和作为MAC算法使用。它由Jean-Philippe Aumasson等人于2012年设计,结合了BLAKE、Skein和JH等算法的特点[1]。
通常具体的SipHash算法表示为SipHash-c-d,其中c和d分别表示压缩轮数和终结轮数。SipHash算法的步骤如下: