Cache Replacement#

相信学过OS的用户都学习过Cache Replacement Algorithm/Policy,这些算法在数据库领域也被广泛使用,而不局限于硬件的cache
我们也可以将数据库视作为一个固定在一个阈值内的cache,而替换算法的作用就是选择被逐出的“元素”(e.g. 对于mmkv是键值对),对于不同的场景,被逐出的“元素”可能是最优的,也可能是最坏的,因此根据实际情况进行选择是很有必要的。

Config#

用户可以在配置文件设置最大内存占用替换策略从而控制数据库的内存占用。

Policy#

  • None: 不进行替换(一般是作为落地数据库使用)

  • LRU: 采用Least-recently-used策略来替换旧键。

  • MRU:采用Most-recently-used策略

  • LFU(TODO): 采用LFU(Least-frequently-used)策略

  • Random(TODO): 随机替换