基于云的记忆
Posted
技术标签:
【中文标题】基于云的记忆【英文标题】:Cloud based memoizing 【发布时间】:2014-12-29 00:32:16 【问题描述】:我使用python装饰器来记忆某些方法,但是当程序终止时缓存会丢失。我考虑过实现,缓存存储在 MongoDB 中,但我想知道是否有更简单的解决方案。
【问题讨论】:
【参考方案1】:查看joblib。它有一个 memoize-to-disk 装饰器,可以在本地执行此操作。让它在别处缓存结果也可以通过继承来实现,但不是我实际看到的。您可以通过查看 functools 中的 lru_cache 实现或其反向端口克隆并更改它与缓存对象的交互方式来轻松编写自己的代码,因此它与数据库而不是字典进行通信。
请记住,查询数据库是要付出代价的,这使得从缓存中受益变得更加困难,除非是运行时间很长的任务。
或者,您可以编写一个简单的 atexit 句柄来遍历每个 functools.lru_cache 实例并将它们的缓存转储到 json 或 pickles 并作为 init 进程的一部分重新加载它们。
【讨论】:
以上是关于基于云的记忆的主要内容,如果未能解决你的问题,请参考以下文章
Exchange Powershell:是不是可以区分基于本地和基于云的通讯组?