- Redis 作为一个K-V的内存数据库,它使用一张全局的哈希来保存所有的键值对。这张哈希表,有多个哈希桶组成,哈希桶中的entny元素保存了key和value指针,其中*key指向了实际的键,*value指向了实际的值。哈希表查找速率很快的,有点类似于Java中的HashMap,它让我们在O(1)的时间复杂度快速找到键值对。首先通过key计算哈希值,找到对应的哈希桶位置,然后定位到enty,在entry找到对应的数据。
- 哈希冲突:通过不同的key,计算出一样的哈希值,导致落在同一个哈希桶中。
- Redis为了解决哈希冲突,采用了链式哈希。链式哈希是指同一个哈希桶中,多个元素用一个链表来保存它们之间依次用指针连接。