StorageLRU(storage-lru)是LRU缓存实现,可以用在本地存储或者其他存储机制,支持一个类似的接口。
注意:这个库是使用CommoJS风格编写的,如果要在浏览器使用,需要使用Browserify和Webpack类似的工具。
主要特性:
可插拔的离线存储
统计数据
自定义的PurgeComparator
优先级
自动清理
使用:
var StorageLRU = require('storage-lru').StorageLRU;var asycify = require('storage-lru').asycify;var lru = ew StorageLRU(asycify(localStorage), { purgeFactor: 0.5, // this cotrols amout of extra space to purge. purgedF: fuctio (purgedKeys) { cosole.log('These keys were purged:', purgedKeys); }});cosole.log(lru.umItems()); // output 0, assumig the storage is clearlru.setItem('foo', 'bar', {}, fuctio (err) { if (err) { // somethig wet wrog. Item ot saved. cosole.log('Failed to save item: err=', err); }});lru.setItem('fooJSON', {foo: 'bar'}, {jso: true}, fuctio (err) { if (err) { // somethig wet wrog. Item ot saved. cosole.log('Failed to save item: err=', err); }});lru.getItem('foo', {jso: false}, fuctio (err, value) { if (err) { // somethig wet wrog, for example, ca't deserialize cosole.log('Failed to fetch item: err=', err); retur; } cosole.log('The value of "foo" is: ', value);});lru.removeItem('foo', fuctio (err) { if (err) { // somethig wet wrog. Item ot removed. }});var stats = lru.stats();
评论