擅长:python、mysql、java
<p>你可以用<a href="https://pypi.python.org/pypi/anycache" rel="nofollow noreferrer">anycache</a>为你做这项工作。它考虑了所有细节:</p>
<ul>
<li>它使用<a href="https://pypi.python.org/pypi/dill" rel="nofollow noreferrer">dill</a>作为后端,
它扩展了python <code>pickle</code>模块来处理<code>lambda</code>以及
python特性。</li>
<li>它将不同的对象存储到不同的文件中并正确地重新加载它们。</li>
<li>限制缓存大小</li>
<li>允许清除缓存</li>
<li>允许在多个运行之间共享对象</li>
<li>允许尊重影响结果的输入文件</li>
</ul>
<p>假设您有一个创建实例的函数<code>myfunc</code>:</p>
<pre><code>from anycache import anycache
class Company(object):
def __init__(self, name, value):
self.name = name
self.value = value
@anycache(cachedir='/path/to/your/cache')
def myfunc(name, value)
return Company(name, value)
</code></pre>
<p>Anycache在第一次调用<code>myfunc</code>,并将结果pickle到
在<code>cachedir</code>中使用唯一标识符(取决于函数名及其参数)作为文件名的文件。
在任何连续的运行中,都会加载pickled对象。
如果在python运行之间保留了<code>cachedir</code>,则pickled对象取自上一次python运行。</p>
<p>有关更多详细信息,请参见<a href="http://anycache.readthedocs.io" rel="nofollow noreferrer">documentation</a></p>