分布式缓存 – lru算法实现
前言
最近复习操作系统,看到了lru算法,就去网上搜索下,因此发现了GeeCache,顺手写了一遍。研究下lru算法的实现。
正文:
lru使用map+链表实现。map里面存储了key以及其对应的链表节点。当我们根据某个key访问缓存值的时候,可以经过map快速定位到该链表节点。从而获取值
下面我们来看下它的具体实现:
首先,我们可以考虑下lru的结构:
1.map
2.链表
3.占用的内存大小
4.最大内存
type Cache struct { maxBytes int64 nbytes int64 ll *list.List cache map[string]*list.Element }