redis 数据类型与底层数据结构的关系
![在这里插入图片描述](https://img-blog.csdnimg.cn/2020110911112178.png#pic_center)
可以看到,String 类型的底层实现只有一种数据结构,也就是简单动态字符串。而 List、Hash、Set 和 Sorted Set 这四种数据类型,都有两种底层实现结构。通常情况下,我们会把这四种类型称为集合类型,它们的特点是一个键对应了一个集合的数据。redis 3.2后引入了quicklist结构
键和值用什么结构组织
Redis 使用了一个哈希表来保存所有键值对。
一个哈希表,其实就是一个数组,数组的每个元素称为一个哈希桶。所以,我们常说,一个哈希表是由多个哈希桶组成的,每个哈希桶中保存了键值对数据。
哈希桶中的元素保存的并不是值本身,而是指向具体值的指针。
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201109112149436.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTMyNDY4OTg=,size_16,color_FFFFFF,t_70#pic_center)
潜在的风险点:
- 哈希表的冲突问题
- rehash 可能带来的操作阻塞
为什么哈希表操作变慢了?