redis zset中跳表是skiplist+hash实现的,这里hash的作用是啥?

sfasdfasdfasf 发布于 02/04 13:46
阅读 346
收藏 0

redis zset中跳表是skiplist+hash实现的,这里hash的作用是啥?感觉可以去掉啊

加载中
0
f
freezingsky

相同key的hash值相同,用于去重啊

0
网瘾少年徐志摩
网瘾少年徐志摩

相同key的hash一定相同,不同key的hash不一定不同 hash为纯数字比字符串对比要快而且方便数据分组

你需要理解hash存在的意义

0
sprouting
sprouting

Redis 的跳表实现中,跳表节点除了包含 score 和 member 值外,还包含了一个 hash 表,该 hash 表与跳表结构相结合,提高查询效率。

Hash 表的作用是用于存储 member 值与跳表中的某一节点的对应关系,查询 member 值时,可以通过 hash 表快速定位到对应的节点。这样就可以大大减少查询时间,提高 ZSET 的查询效率。

0
codergh
codergh

Redis ZSET 的内部实现使用了跳表(Skip List)来存储数据,同时在每个节点上还有一个哈希表,来维护同一分值(score)下的元素。

这个哈希表的作用是为了避免每次查询时都要遍历一遍跳表中的所有元素,从而大大提高查询效率。哈希表可以快速确定一个元素的分值在跳表中的位置,从而快速找到该元素。

所以说,哈希表的作用就是使得查询操作更加快速高效,提高了查询性能。

OSCHINA
登录后可查看更多优质内容
返回顶部
顶部