生成一个支持最大大小、过期/ttl和基于参数的缓存的缓存装饰器

2024-05-13 14:03:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我正试图为我的python服务器构建一个缓存,但是到目前为止,我还没有遇到任何我想要的东西。我想要一个基于参数缓存结果的缓存/记忆装饰器,即不同的参数有不同的缓存,每个缓存在TTL分钟后过期。缓存中的元素数量也应该有一个最大大小。在

我找到了这个(我们在Python2.7上),它可以做我想要的一切,除了expiration/TTL。 backport of Python 3's lru_cache

gist of above code

我试图对它进行一些修改以支持TTL,但是我在代码的LRU部分遇到了错误,它改变了缓存中的链接。我不认为上面的代码需要很多改变来加入TTL支持,我只是对LRU缓存的东西感到困惑,并且在实现它时遇到了问题。在

你可以找到我的代码here

以前有没有人实现过这个,或者可以帮我在上面的后台代码中添加对TTL的支持?在

谢谢

编辑:我可能已经修好了。。。我做了一些小的改动which you can find here,只是将缓存结果与LRU指针分离开来,看起来它似乎在工作


Tags: of记忆代码服务器元素参数数量here