位置: 编程技术 - 正文
推荐整理分享Nodejs基于LRU算法实现的缓存处理操作示例(nodejs libuv),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:node.js理解,nodejs run,node.js理解,nodejs lua,node.js理解,node.js lodash,node.js理解,nodejs libuv,内容如对您有帮助,希望把文章链接给更多的朋友!
本文实例讲述了Nodejs基于LRU算法实现的缓存处理操作。分享给大家供大家参考,具体如下:
LRU是Least Recently Used的缩写,即最近最少使用页面置换算法,是为虚拟页式存储管理服务的,是根据页面调入内存后的使用情况进行决策了。由于无法预测各页面将来的使用情况,只能利用“最近的过去”作为“最近的将来”的近似,因此,LRU算法就是将最近最久未使用的页面予以淘汰。
可以用一个特殊的栈来保存当前正在使用的各个页面的页面号。当一个新的进程访问某页面时,便将该页面号压入栈顶,其他的页面号往栈底移,如果内存不够,则将栈底的页面号移除。这样,栈顶始终是最新被访问的页面的编号,而栈底则是最近最久未访问的页面的页面号。
如输入以下序列时:4,7,0,7,1,0,1,2,1,2,6
结果为:
7 0 0 7 7 1 7 0 7 0 1 7 0 2 7 0 1 0 1 2 6
适用于Node.js的一个LRU缓存,capacity为缓存容量,为0时构造一般缓存。
LRU算法也可以用于一些实际的应用中,如你要做一个浏览器,或类似于淘宝客户端的应用的就要用到这个原理。大家都知道浏览器在浏览网页的时候会把下载的图片临时保存在本机的一个文件夹里,下次再访问时就会,直接从本机临时文件夹里读取。但保存图片的临时文件夹是有一定容量限制的,如果你浏览的网页太多,就会一些你最不常使用的图像删除掉,只保留最近最久使用的一些图片。这时就可以用到LRU算法 了,这时上面算法里的这个特殊的栈就不是保存页面的序号了,而是每个图片的序号或大小;所以上面这个栈的元素都用Object类来表示,这样的话这个栈就可以保存的对像了。
希望本文所述对大家nodejs程序设计有所帮助。
node操作mysql数据库实例详解 本文实例讲述了node操作mysql数据库的方法。分享给大家供大家参考,具体如下:1、建立数据库连接:createConnection(Object)方法该方法接受一个对象作为参
nodejs中模块定义实例详解 本文实例讲述了nodejs中模块定义方法。分享给大家供大家参考,具体如下:1.模块定义nodejs所谓的模块就是一个文件!一个.js文件就是一个nodejs的模块,
实例分析nodejs模块xml2js解析xml过程中遇到的坑 本文实例讲述了nodejs模块xml2js解析xml过程中遇到的坑。分享给大家供大家参考,具体如下:在一个项目中,用到nodejs模块xml2js解析xml,xml的数据如下:xm
标签: nodejs libuv
本文链接地址:https://www.jiuchutong.com/biancheng/377879.html 转载请保留说明!友情链接: 武汉网站建设