编辑
2023-11-14
SpringBoot
00
xml
<dependency> <groupId>o
编辑
2023-11-14
英语学习
00

There are several reasons why learning Redis can be beneficial:

  1. High Performance: Redis is an in-memory data store that offers fast read and write operations. It is designed to handle millions of operations per second, making it suitable for use cases that require high-performance data storage and retrieval.
编辑
2023-11-14
Redis源码阅读
00

首先来看一下dict结构体,是redis的哈希表实现,这里重要的是渐进式rehash。rehash就是扩容操作,防止链变长严重影响哈希表的性能。

type:指向字典类型结构(dictType)的指针,该结构定义了字典的操作函数,如插入、查找、删除等。

编辑
2023-11-13
数据结构与算法
00

哈希洪水攻击(Hash-Flooding Attack)是一种拒绝服务攻击(Denial of Service),旨在使服务器陷入瘫痪。攻击者利用哈希表数据结构的特性,通过构造大量具有相同哈希值的输入数据,使服务器在处理这些数据时消耗大量的计算资源和内存,导致服务器无法正常响应其他合法请求。

哈希洪水攻击的原理是利用哈希表中的哈希冲突(碰撞)问题。在哈希表中,不同的键(Key)通过哈希函数映射到不同的位置,但由于哈希函数的限制,不同的键可能会映射到相同的位置,即发生哈希冲突。当攻击者构造大量具有相同哈希值的输入数据时,这些数据会被存储在哈希表的同一个位置上,导致哈希表的性能急剧下降,服务器无法正常处理其他请求。

编辑
2023-11-13
数据结构与算法
00

SipHash算法是一种针对短消息设计的伪随机函数族,可用于消息认证和作为MAC算法使用。它由Jean-Philippe Aumasson等人于2012年设计,结合了BLAKE、Skein和JH等算法的特点[1]

算法描述

通常具体的SipHash算法表示为SipHash-c-d,其中c和d分别表示压缩轮数和终结轮数。SipHash算法的步骤如下:

初始化阶段

  1. 初始化四个64位的内部状态字v0, v1, v2, v3,其中v0=k0⊕736f6d6570736575,v1=k1⊕646f72616e646f6d,v2=k0⊕6c7967656e657261,v3=k1⊕7465646279746573。这里的k0和k1是密钥k的小端编码的64位字,初始状态的常数对应于大端编码的ASCII字符串“Somepseudorandomlygeneratedbytes”。