数据结构
文章平均质量分 84
5ycode
公众号5ycode,
所有内容公众号最先发布,请大家尊重原创
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
为什么redis的zset用跳跃表而不用b+ tree?
redis设计本身使用的是极简思想,跳跃表的操作,比二叉树简单,不需要考虑平衡,实现起来也简单,我觉的这个是重点redis是纯内存操作,不需要考虑磁盘IO的次数(一个*header可以理解为一个数据页,只不过是在内存里)MySQL为了持久化,需要考虑磁盘IO,利用数据页,系统缓存,减少磁盘的操作顺序如果这个问题反过来就好解释了,MySQL为什么用B+Tree 而不用跳表层低,磁盘IO少性能稳定平衡到达每一个叶子节点的路径都固定就上面的两个,实现复杂度高了也无所谓。原创 2023-02-21 09:58:39 · 3395 阅读 · 1 评论 -
一文读懂redis的zset
zset的数据结构在redis中有一个有序列表,它的底层是由压缩列表或跳表组成。我们看下对应的数据结构压缩链表:跳表:下载下来4.0的源码 https://download.redis.io/releases/redis-4.0.0.tar.gz对应的源码:src/server.h# 最大层级#define ZSKIPLIST_MAXLEVEL 32 /* Should be enough for 2^32 elements */# 表示上一层级是下一层级的1/4,相当于是一棵四叉树#d原创 2021-07-23 18:30:47 · 614 阅读 · 0 评论 -
一文读懂布隆过滤器
什么是布隆过滤器?布隆过滤器(Bloom Filter)是1970年由布隆提出的本质上布隆过滤器是一种数据结构,比较巧妙的概率型数据结构,特点是高效地插入和查询,可以用来告诉你 “某样东西一定不存在或者可能存在”。特点:二进制数组+随机hash空间效率和查询效率都优于一般算法 O(1)有一定的误识别率(散列冲突)删除困难(重合)高并发场景下,防止缓存穿透;数据结构如何快速定位一个元素是否存在?我们通过redis的全局hash表或者hashMap就能解决这个问题; 看上面的数据结构,两个数据结构差不原创 2021-07-22 18:08:42 · 228 阅读 · 3 评论
分享