redis中zset跳表
时间: 2023-08-27 07:06:35 浏览: 116
为啥 redis 使用跳表(skiplist)而不是使用 red-black?1
Redis中的有序集合(zset)使用跳表的原因是跳表在查找、插入和维护方面与红黑树具有相似的效率,并且跳表是一个链表结构,可以方便地确定范围区间。相比之下,在树上进行区间查询可能不太方便。此外,Redis选择跳表而不是红黑树作为有序集合的实现方式,并不是基于并发的考虑,因为Redis是单线程的,而是因为跳表的实现相对于红黑树更加简洁。Redis的跳表实现由zskiplist和zskiplistNode两个结构组成,其中zskiplist用于保存跳表的信息,而zskiplistNode用于表示跳表的节点。\[1\]\[2\]\[3\]
#### 引用[.reference_title]
- *1* [Redis的zset结构——跳表SkipList](https://blog.csdn.net/weixin_46307478/article/details/123086369)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
- *2* *3* [redis跳表——zset的底层实现](https://blog.csdn.net/qq_42410605/article/details/122517927)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
阅读全文