Redis存储篇内容概览

|
image-20211010141052005

既然要把数据放到内存中,就需要提供索引数据的方式,常见的索引实现技术有:Hash表,B+树,字典树等。MySQL中的索引是通过B+树实现的。而Redis作为KV内存数据库,其是采用哈希表来实现索引的。

为了实现键值快速访问,Redis使用了个哈希表来存储所有的键值对。

在内存中的布局如下:

image-20211010115048193

哈希桶中存储entry元素,entry元素包含了key和value指针,指向实际的key和value内容。

key指向的是字符串,value指向的是实际的各种redis数据结构。

这种结构下,只要哈希冲突不多,那么寻找kv键值对的效率就是很高的,而redis与Memcached相比,最重要的亮点就是value中提供的各种数据结构。这些数据结构的实现决定了执行各种操作命令获取数据的性能。

我们接下来看看这些数据结构。