我想提高函数的性能,以返回调整大小的图像。所请求的图像大小不应该有很大的变化(依赖于设备),所以以某种方式缓存结果是有意义的。Clojure - 在磁盘上记忆
我当然可以在电脑上保存的,并检查调整后的图像存在,并确保如果原始图像被删除,调整大小的版本太...
或者,我可以用一个memoized函数。但是由于结果可能相当大(我认为图像大约是5 - 10 MB),因此将它们存储在内存中是没有意义的(几十GB图像及其修改后的版本会很快填满内存)。
那么,有没有一种方法可以获得像常规Clojure defmemo
一样的memoized函数,但是由本地磁盘而不是内存中的文件夹支持?然后,我可以使用ttl
策略来确保图像不会长时间不同步。
与crache类似的东西,但由文件系统支持?
您可以将调整大小的图像存储在Redis或Memcached中,并具有一定的合理到期时间以自动清理未使用的记录。 –
只是看着你的'crache'链接,它看起来非常适合你的任务。 –
@LeonidBeschastny好的crache由Redis支持,这是一个内存数据存储。不幸的是,我没有那么多的RAM,这就是为什么我试图避免这种情况并改为使用文件系统。 – nha