![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
笔记
太阳的阳
这个作者很懒,什么都没留下…
展开
-
跳表随记
跳表随记前言: 一个有序数组查找指定值可通过二分法,但是不好插入,链表好插入但是查找必须从头结点开始链表基于有序链表实现,现在假设每两个提出来作为新的一级,再在此基础上再每提两个作为二级… 这样在查找时从最高开始比较再慢慢往下直到原始链表就可以比较插入了。这样就相当于是在链表上的二分查找,但是这个只是便于理解,选2太密集。redis中的有序链表sorted list便采用跳表,其中它的层高是1-32的随记数...原创 2021-07-01 21:17:57 · 87 阅读 · 0 评论 -
redis随记
redis简单随记redis是单进程单线程单实例,客户端与redis的连接使用多线程上下文切换成本高,那redis单线程是如何抗住这么多请求,除了redis数据是在内存中并采用k-v形式存储,主要原因采用epoll(同步非阻塞)这种io多路复用的调用方式,大量请求(连接) 对应许多文件描述符fd(linux下一切皆文件),大致实现就是通过while(true)循环下遍历这些fd,linux会返回可操作的fd集合(linux内核处理),再拿着它们进行io处理,达到同步非阻塞(linux是无法做到aio异步非原创 2021-06-27 11:27:03 · 108 阅读 · 0 评论 -
MySql索引与B+树随记
innodb引擎存储单位是数据页,数据页默认大小为16kb。索引采用b+树(也有数组,散列表的形式),自动为主键创建索引(主键索引也是聚集索引,也就是索引和表数据同时存在于这个b+树的数据结构中)b+树和b树联系和区别:都是排好序的; 叶子节点(一个数据页)都存储多行数据(一行多浪费);b+树叶子节点包含所有数据,父节点存在冗余(父节点是为其创建的索引),b+树叶子节点之间存在双向指针;理解: 在没有索引的情况下,表数据通过数据页+指针进行顺序存储,索引是为了更方便查询在此基础上生成了b+树,此时索引与数原创 2021-05-16 12:26:18 · 479 阅读 · 3 评论