Moralok's Blog

你在幼年时当快乐

在静态博客系统 Hexo 和它的第三方主题 NexT 被广泛使用多年的情况下,网上添加友链的相关教程并不少。然而由于管理、使用和部署 Hexo 博客的方式有所不同,用户可能并不想或不方便侵入式地在主题目录中修改或添加文件。本文介绍了如何在通过 Git submodule 管理和使用 NexT 主题的情况下,无侵入式地添加并定制友链页面

阅读全文 »

本文记录了 Redis内存淘汰策略,并介绍了其中 LRULFU 算法实现相比于普通版本的优化思路,最后简单探究了 Redis 关于内存淘汰的具体实现细节,重点关注 Redis 是如何选取评估哪些 key 是更应该优先被淘汰的 key
在探究的过程中,再次体会到 Chat GPT 带来的便捷和它在细微之处的胡说八道,以及网上的资料很有帮助但是通过阅读源码加以验证同样重要。

阅读全文 »

本文记录了常见的内存淘汰算法以及其中 LRULFU 的 Java 版本简单实现。

阅读全文 »

在刚开始工作时,使用到 Redis,在了解其底层数据结构时,接触到了跳表,但是在之后很长时间里,我其实并不了解它。我甚至因为看到跳表的原理图,仍然觉得难以理解,因此对它有点“望而生畏”。直到我读了跳表的代码实现,结合文字说明,我才真正体会到“跳表的实现相比平衡二叉树而言比较简单”这句话是真的。

阅读全文 »

本文记录了 k3s 的安装和使用,相较于 minikube,前者是一个完全兼容的 Kubernetes 发行版,安装和使用的体验更佳。

阅读全文 »

本文记录了 Vim 常用的快捷键作为备忘清单。

阅读全文 »

GParted 是一款适用于 Linux 的图形化磁盘分区管理工具,通过它可以便捷地为 VMware 中的 Ubuntu Desktop 增大磁盘空间。然而你可能正在使用 Ubuntu Server,并不想要安装或并不被允许安装图形化界面,本文介绍了如何在不使用 GParted 的情况下,通过命令行使用自带的工具为 VMware 中的 Ubuntu Server 增大磁盘空间。

阅读全文 »

事务就是一组数据库操作,它具有原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability),简称为 ACID。本文将介绍 MySQL 事务的隔离性以及对其的思考。
尽管这是一个老生常谈的话题,网上也有很多相关的资料,但是要理解它并不容易。即使林晓斌老师在 《MySQL 实战 45 讲》 中用了两个章节进行介绍,但是你在评论区中会发现有些分享或讨论的观点彼此矛盾。原因可能有很多,比如为了易于理解使用简化概念进行分析,有些具体细节各人各执一词同时它们又不好通过测试进行验证,用词不严谨等等。本文尽可能为自己梳理出一个完善并且前后一致的认知体系,再针对一些容易引起误解的地方作进一步的说明。

阅读全文 »

JavaCleanerFinalizer 都实现了一种 finalization 机制,前者更轻量和强大,你可能在了解 NIO 的堆外内存自动释放机制中注意过它;后者为人所诟病,finalize 方法被人强烈反对使用。本文想要解析它们的原因不在于它们实现的功能,而在于它们是 Reference 的具体子类。
Reference 作为和 GC 紧密联系的类,你可能从很多文字描述中了解过 SoftReferenceWeakReference 还有 PhantomReference 但是却很少从代码层面了解过它们,当你牢记“一个对象是否可以被回收的判断依据是它是否从 Root 对象可达”这条规则再面对 Reference 的子类时是否产生过割裂感;你是否好奇过 Finalizer 如何和重写 finalize 方法的类产生联系,本文将从 CleanerFinalizer 的源码揭示一些你可能已知的结论背后的朴素原理。

阅读全文 »
0%