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

问题描述

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

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

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

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

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

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)