微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在nodejs中设计一个简单的缓存管理器来管理磁盘上的文件

如何解决在nodejs中设计一个简单的缓存管理器来管理磁盘上的文件

我的服务器接收输入数据并生成输出文件。我需要缓存此输出文件,当用户再次请求输入时,服务器将立即返回输出文件。缓存管理器需要:

  • 条目:inputId->处理文件(缓存文件)的路径
  • 许多服务器进程可以同时设置和获取缓存条目
  • 限制缓存文件的总大小,如果磁盘已满,请删除旧的缓存文件
  • 缓存的文件过期,并在一段时间后将其删除。如果缓存命中,则重置缓存文件的过期时间。
  • 服务器进程可能崩溃,或计算机可以随时关闭。缓存管理器可以丢弃不正确的数据,但保留有效的缓存文件

现在,我正在使用redis作为LRU缓存。

  • inputId->具有过期时间的filePath
  • 排序集:inputId->文件的上次访问时间
  • 将3个lua脚本编写为setCache(inputId,filePath),getCache(inputId),removeCache(inputId)
  • 定期检查磁盘空间以删除最近最少使用的文件
  • 听事件,redis密钥过期以删除文件缓存

总的来说,我觉得我的执行能力不足以处理进程/计算机重启/崩溃。我打算将缓存索引保存到数据库中。 我需要一些有关我的设计的评论。我需要重新发明轮子吗? (stackoverflow不允许查找库或文档)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。