最小编辑距离
最小编辑距离旨在定义两个字符串之间的相似度
编写线程安全的代码
多线程安全问题要非常重视,排查也非常不容易,一个人应该对自己代码的安全性有个认识
工厂模式
三种工厂模式的选择主要取决于产品的复杂度和变化的需求。简单工厂适用于较简单的情况,工厂方法适用于产品种类较多并且希望扩展产品类型的场景,而抽象工厂适用于需要创建多个相关产品的场景
简单动态字符串
Redis 的字符串经过这样设计,不仅可以存储字符串型的数据,还可以存储二进制数据。原生字符串是通过末尾的 \0 判断字符串的结束,但是这样就让二进制数据无法存储,因为你不确定字符串哪里是完整的部分。但现在我们通过 len 成员就可以避免这个问题,实现二进制数据存储
解决TopK问题之优先队列
就两个核心操作:上浮和下沉
三大经典排序算法
快速排序,归并排序,堆排序
实现海量数据快速查找之哈希表
学习源码数据结构,要学会从基础开始,并且结合已有资料来加快整个进程。学习源码的思想是最重要的。
Redis 事件驱动框架思路浅读
今天才体会到,阅读这种设计很多业务的代码,是相当痛苦的。就算已经明确是阅读 Reactor 模块,可是找到自己的部分也是相当痛苦的,好在结合网上的资料走过来了。只是了解 Redis 的网络模型,也不会去深究源码本身
源码阅读Source Insight
尽管我喜欢 Clion 读源码,但前提是有CMake文件,而且从大型项目角度来看,还是得用这个才可以
Nginx源码剖析之基本数据结构:双向链表
offsetof(type, link)宏函数,用于获取link成员相对于其结构体type起始地址的偏移量(以字节为单位),即这个宏返回宿主结构体的首地址。通过该宏,可以将链表操作与具体数据结构解耦,使链表可以用于多种数据结构