cache-lru-high
v1.0.1
Published
使用 hashMap + double linked list 实现所有操作时间复杂度为 O(1) 的 LRU
Downloads
2
Readme
高效的缓存淘汰策略(LRU)
使用 hashMap + double linked list 实现所有操作时间复杂度为 O(1) 的 LRU
Install
npm install cache-lru-high
API
new CacheLRU(maxSize:number = 10)
构造函数 maxSize 默认值为 10
set(key:string,value:any)
设置缓存的数据
get(key:string)
获取缓存的数据
keys()
同 array.keys()
values()
同 array.values()
forEach(callback:Function)
按照缓存的顺序遍历
Example
let lru = new CacheLRU();
lru.set("1", { value: 1 });
lru.set("2", { value: 2 });
lru.set("3", { value: 3 });
lru.set("4", { value: 4 });
lru.set("5", { value: 5 });
//[ '5', { value: 5 } ] [ '4', { value: 4 } ] [ '3', { value: 3 } ] [ '2', { value: 2 } ] [ '1', { value: 1 } ]
console.log(...lru.entries());
//设置最大的缓存数
//最早的数据被抛弃掉
let lru = new CacheLRU(5);
lru.set("1", { value: 1 });
lru.set("2", { value: 2 });
lru.set("3", { value: 3 });
lru.set("4", { value: 4 });
lru.set("5", { value: 5 });
lru.set("6", { value: 6 });
// {value:6},{value:5},{value:4},{value:3},{value:2},
console.log(...lru.values());
// get 之后数据被放到最前面
let lru = new CacheLRU();
lru.set("1", { value: 1 });
lru.set("2", { value: 2 });
lru.set("3", { value: 3 });
lru.set("4", { value: 4 });
lru.set("5", { value: 5 });
lru.get("2");
// 2,5,4,3,1
console.log(...lru.keys());
}
// forEach()
let lru = new CacheLRU();
lru.set("1", { value: 1 });
lru.set("2", { value: 2 });
lru.set("3", { value: 3 });
lru.set("4", { value: 4 });
lru.set("5", { value: 5 });
lru.get("2");
lru.forEach(node => {
console.log(node.key);
});
Run tests
npm run test
Author
👤 cuixiaorui
- Github: @cuixiaorui
Show your support
Give a ⭐️ if this project helped you!
This README was generated with ❤️ by readme-md-generator