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

vojdkbi0  于 2021-06-09  发布在  Redis
关注(0)|答案(0)|浏览(300)

我的服务器接收输入数据并生成输出文件。我需要缓存这个输出文件,当用户再次请求输入时,服务器会立即返回输出文件。缓存管理器需要:
条目:inputid->已处理文件(缓存文件)的路径
许多服务器进程可以同时设置和获取缓存项
限制缓存文件的总大小,如果磁盘已满,则删除旧的缓存文件
缓存文件过期,一段时间后将被删除。如果缓存命中,则重置缓存文件的过期时间。
服务器进程可能崩溃,或者计算机可能随时关闭。缓存管理器可以丢弃不正确的数据,但保留有效的缓存文件。
现在,我使用redis作为lru缓存。
inputid->带过期时间的文件路径
排序集:inputid->文件的上次访问时间
将3个lua脚本写入setcache(inputid,filepath)、getcache(inputid)、removecache(inputid)
定期检查磁盘空间以删除最近最少使用的文件。
侦听redis密钥过期以删除文件缓存的事件
一般来说,我觉得我的实现不够强大,无法处理进程/计算机重启/崩溃。我打算将缓存索引保存到数据库中。我需要一些关于我的设计的意见。我需要重新发明轮子吗(stackoverflow不允许查找库或文档)

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题