缓存算法和内存页面置换算法(Page Replacement Algorithm)的核心思想是一样的:给定一个有限的空间,设计一个算法来更新和访问里面的数据。下面提到缓存算法的同时,也指代页面置换算法。
LRU缓存机制
LRU(The Least Recently Used,最近最久未使用算法) 是一种常见的缓存算法,在很多分布式缓存系统(如Redis, Memcached)中都有广泛使用。
LRU算法的思想是:如果一个数据在最近一段时间没有被访问到,那么可以认为在将来它被访问的可能性也很小。因此,当空间满时,最久没有访问的数据最先被置换(淘汰)。
- set(key,value):将记录(key,value)插入该结构。当缓存满时,将最久未使用的数据置换掉。
- get(key):返回key对应的value值。
实现:最朴素
本文介绍了LRU和LFU两种常见的缓存算法,包括它们的基本思想、优缺点以及实现方式。LRU利用双向链表和哈希表实现,淘汰最近最久未使用的数据;LFU则考虑访问频率,淘汰访问频率最低的数据。同时,文章还提到了其他缓存机制,如FIFO和OPT,FIFO存在Belady现象,而OPT是理论上最佳但难以实现的页面置换算法。
订阅专栏 解锁全文
499

被折叠的 条评论
为什么被折叠?



