基于云的记忆

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 进程的一部分重新加载它们。

【讨论】:

以上是关于基于云的记忆的主要内容,如果未能解决你的问题,请参考以下文章

云计算--学习记忆Weekly4

Exchange Powershell:是不是可以区分基于本地和基于云的通讯组?

与 Silverlight 一起使用的基于云的良好文件存储平台是啥?

如何使用地形地图类型设置基于云的谷歌地图样式?

基于阿里云的API简介

基于百度云的 AI 接口调用