我一直都知道,redis是以键值对的形式来进行存储数据的,但这个键值对是怎样存在的我一直没怎么了解过。所以在看了一些文章后决定自己写一下增强记忆。
为了提升反应速度,redis选择了hash表来存储元素。将键值对的作为一个整体entity来存储到hash表中。这个存储在hash表中的entity的键值是执行实际对象的指针。也就是说如果我们要寻找一个value值,先通过key的计算找到在hash表中的哪个位置。然后再通过指针找到对应的具体数据。
当然使用hash难免会发生hash碰撞,也就是hash冲突。redis是通过拉链表的方法来解决hash冲突的。也就是发生冲突的时候新的节点放在了旧节点的后面形成链表结构。