- 博客(343)
- 收藏
- 关注
原创 为什么redis的zset用跳跃表而不用b+ tree?
redis设计本身使用的是极简思想,跳跃表的操作,比二叉树简单,不需要考虑平衡,实现起来也简单,我觉的这个是重点redis是纯内存操作,不需要考虑磁盘IO的次数(一个*header可以理解为一个数据页,只不过是在内存里)MySQL为了持久化,需要考虑磁盘IO,利用数据页,系统缓存,减少磁盘的操作顺序如果这个问题反过来就好解释了,MySQL为什么用B+Tree 而不用跳表层低,磁盘IO少性能稳定平衡到达每一个叶子节点的路径都固定就上面的两个,实现复杂度高了也无所谓。
2023-02-21 09:58:39 2248 1
原创 数据库分库分表
随着业务的发展,单库单表难以满足我们对性能的要求,在分库之前,可能我们经历了sql调优、索引优化、数据库参数优化、读写分离、使用分布式缓存来降低我们数据库的压力。但是随着业务再一步扩大,以上的方法可能就不适用了;
2022-12-16 10:30:57 1665
原创 OceanBase-概述
前段时间学习了下tidb的体系架构,了解了其运行原理;今儿了解下OceanBase;先看下官网:https://www.oceanbase.com/在OceanBase的产品分类里,一共有三大块,分布式数据库、工具体系、生态产品;(一个产品好不好用周边很关键);介绍:兼容 MySQL 的单机分布式一体化数据库,具有原生分布式架构,支持金融级高可用、透明水平扩展、分布式事务、多租户和语法兼容等企业级特性。OceanBase 内核通过大规模商用场景的考验,已服务众多行业客户;面向未来携手社区生态伙伴,共建开源开
2022-12-07 19:14:52 4242
原创 MySQL体系-MySQL架构
先放一张图:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-I9Sn5jiJ-1665728445419)(https://mmbiz.qpic.cn/mmbiz_png/AaKTtPGkoWKeNnaiawcAKehCXnveVAEzQf2utSOeOG1X12ibybibUsHxvz9bQGr1oKTiaYwZhicicDxTplfF6MWf36Lg/640?wx_fmt=png)]引用自:https://dev.mysql.com/doc/refman/8.0/en/p
2022-10-14 14:21:37 680
原创 redis源码阅读-zset
前段时间给小伙伴分享redis,顺带又把redis撸了一遍了,对其源码,又有了比较深入的了解。(ps分享的文章再丰富下再放出来)。
2022-07-31 12:37:39 605
原创 InnoDB存储引擎存储结构详解-实战篇
本文通过innodb_ruby,来拆解InnoDB在表空间的纯结构,通过本文,希望你能深入了解下InnoDB的数据结构
2022-07-28 19:33:12 814
原创 mac big sur openjdk8 源码编译
为了了解下jvm的JIT的热点探测,想了解下到底怎么判定是热点代码的逻辑,想着翻下jdk的代码,于是就有了这篇文章。
2022-04-02 18:56:14 1080
原创 redis源码阅读-发布与订阅pub/sub
redis的发布订阅(pub/sub)是一种消息通信模式,由发布者(pub)发布消息,订阅者订阅(sub)消息。redis通过publish和subscribe等命令实现了发布与订阅模式。
2022-03-29 20:49:11 825
原创 tcp/ip网络基础
从这里你可以了解网络的基础知识,tcp/ip,三次握手、四次挥手、tcp与udp,http版本演化、http响应码、https。
2022-03-04 18:45:11 2762
原创 spring是如何解决循环依赖,为什么不使用二级缓存?
通过这篇,你可以详细的了解spring是如何解决循环依赖的,怎么提升代码的执行效率,怎么给bean初始化增加扩展点。
2022-02-27 21:15:00 2849 2
原创 redis源码阅读-之哨兵流程
哨兵redis sentinel用于管理多个redis实例,是redis高可用的解决方案之一,其本身也是分布式架构。
2022-01-28 10:07:10 1473
原创 feign集成hystrix全流程源码分析
这篇文章算是对之前系列的增强,将springboot的启动流程、@Configuration配置解析装载、feign的构建与执行,hystrix源码分析。
2022-01-14 09:15:00 484
原创 redis中的IO多路复用select和epoll
基本概念I/O多路复用是一种同步I/O模型,实现一个线程可以监视多个文件句柄;一旦某个文件句柄就绪,就能够通知线程进行相应的读写操作;没有文件句柄就绪时会阻塞应用程序。多路是指网络连接,复用指的是同一个线程。I/O多路复用模型是建立在内核提供的多路分离函数select基础之上的,使用select函数可以避免同步非阻塞IO模型中轮询等待的问题。可以先了解下fd和socketlinux中的文件描述符与套接字socketredis中的使用在redis中支持四种类型的实现。根据环境的不同,include进去不同的实
2022-01-05 09:15:00 743
原创 linux中的文件描述符与套接字socket
基本概念文件描述符fdLinux 系统中,把一切都看做是文件,当进程打开现有文件或创建新文件时,内核向进程返回一个文件描述符,
2022-01-04 09:15:00 2644 1
原创 hystrix源码分析
最近遇到了一些生产问题涉及到了hystrix,想要了解下底层的原理。hystrix中大量运用了Rxjava的响应式编程,不懂Rxjava,理解起来有点费劲。
2021-12-25 22:18:55 1608
原创 redis源码六-redis中的缓存淘汰策略处理分析
redis的LRU真的是先清理最长没访问的数据吗?LFU真的是先清理最不经常被访问的码?看完这篇,你就明白了。
2021-12-24 09:13:24 365
原创 redis源码阅读五-为什么大量过期key会阻塞redis?
为什么key过期了不触发过期事件?为什么大量key过期会阻塞redis?通过源码来彻底了解下定期删除的底层机制。
2021-12-20 09:13:21 2652
原创 redis源码阅读四-我把redis6里的io多线程执行流程梳理明白了
通过redis6.2分支的源码,让你彻底理解redis io多线程到底是怎么工作的。对源码没兴趣的也可以直接看总结。
2021-12-15 23:53:36 513
原创 redis源码阅读三-终于把主线任务执行搞明白了
大家可能都能说下redis的执行流程,但是落地到代码里它是怎么执行的呢?通过这篇文章,你可以从源码层面了解redis的监听、请求解析、执行命令、写回数据的流程。
2021-12-14 09:15:00 1279
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人