在使用 Hexo NexT 主题时如何无侵入式地添加友链页面
在静态博客系统 Hexo
和它的第三方主题 NexT
被广泛使用多年的情况下,网上添加友链的相关教程并不少。然而由于管理、使用和部署 Hexo
博客的方式有所不同,用户可能并不想或不方便侵入式地在主题目录中修改或添加文件。本文介绍了如何在通过 Git
submodule
管理和使用 NexT
主题的情况下,无侵入式地添加并定制友链页面。
在静态博客系统 Hexo
和它的第三方主题 NexT
被广泛使用多年的情况下,网上添加友链的相关教程并不少。然而由于管理、使用和部署 Hexo
博客的方式有所不同,用户可能并不想或不方便侵入式地在主题目录中修改或添加文件。本文介绍了如何在通过 Git
submodule
管理和使用 NexT
主题的情况下,无侵入式地添加并定制友链页面。
本文记录了 Redis
的内存淘汰策略,并介绍了其中 LRU
和 LFU
算法实现相比于普通版本的优化思路,最后简单探究了 Redis
关于内存淘汰的具体实现细节,重点关注 Redis
是如何选取和评估哪些 key
是更应该优先被淘汰的 key
。
在探究的过程中,再次体会到 Chat GPT 带来的便捷和它在细微之处的胡说八道,以及网上的资料很有帮助但是通过阅读源码加以验证同样重要。
在刚开始工作时,使用到 Redis,在了解其底层数据结构时,接触到了跳表,但是在之后很长时间里,我其实并不了解它。我甚至因为看到跳表的原理图,仍然觉得难以理解,因此对它有点“望而生畏”。直到我读了跳表的代码实现,结合文字说明,我才真正体会到“跳表的实现相比平衡二叉树而言比较简单”这句话是真的。
本文记录了 k3s
的安装和使用,相较于 minikube
,前者是一个完全兼容的 Kubernetes
发行版,安装和使用的体验更佳。
GParted
是一款适用于 Linux
的图形化磁盘分区管理工具,通过它可以便捷地为 VMware
中的 Ubuntu Desktop
增大磁盘空间。然而你可能正在使用 Ubuntu Server
,并不想要安装或并不被允许安装图形化界面,本文介绍了如何在不使用 GParted
的情况下,通过命令行使用自带的工具为 VMware
中的 Ubuntu Server
增大磁盘空间。
事务就是一组数据库操作,它具有原子性(Atomicity
)、一致性(Consistency
)、隔离性(Isolation
)和持久性(Durability
),简称为 ACID
。本文将介绍 MySQL
事务的隔离性以及对其的思考。
尽管这是一个老生常谈的话题,网上也有很多相关的资料,但是要理解它并不容易。即使林晓斌老师在 《MySQL 实战 45 讲》 中用了两个章节进行介绍,但是你在评论区中会发现有些分享或讨论的观点彼此矛盾。原因可能有很多,比如为了易于理解使用简化概念进行分析,有些具体细节各人各执一词同时它们又不好通过测试进行验证,用词不严谨等等。本文尽可能为自己梳理出一个完善并且前后一致的认知体系,再针对一些容易引起误解的地方作进一步的说明。
Java
类 Cleaner
和 Finalizer
都实现了一种 finalization
机制,前者更轻量和强大,你可能在了解 NIO
的堆外内存自动释放机制中注意过它;后者为人所诟病,finalize
方法被人强烈反对使用。本文想要解析它们的原因不在于它们实现的功能,而在于它们是 Reference
的具体子类。Reference
作为和 GC
紧密联系的类,你可能从很多文字描述中了解过 SoftReference
、WeakReference
还有 PhantomReference
但是却很少从代码层面了解过它们,当你牢记“一个对象是否可以被回收的判断依据是它是否从 Root
对象可达”这条规则再面对 Reference
的子类时是否产生过割裂感;你是否好奇过 Finalizer
如何和重写 finalize
方法的类产生联系,本文将从 Cleaner
和 Finalizer
的源码揭示一些你可能已知的结论背后的朴素原理。