2 w472713985 w472713985 于 2017.09.08 13:57 提问

关于redis的dict模块内存分配的一些问题

在redis的dict模块中使用的是散列表存储键值对,
在字典初始化的时候只给各个结构体分配了基本内存,那么在第一次插入键值对的时候 如果对应的键获取的哈希值非常大,比哈希表里的散列数组的下标对应也就非常大,
这样为什么不会出问题?
数组下标对应的不是指针(首地址+数据类型字节数x下标)吗?

1个回答

oyljerry
oyljerry   Ds   Rxr 2017.09.08 16:37
已采纳

哈希值最后应该还会对数组的下标大小进行取模,这样就不会超过数组的大小了

w472713985
w472713985 原来是这样 那么在拉链法中 如果有相同哈希值的key会存入同一个链表中 但是哈希节点的结构体中的next成员永远都是取数组的第一个元素 这样不会造成数据覆盖吗?
3 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片