python - 使用 cachetools 获取 `cache_info()`

标签 python python-3.x caching

我正在使用 cachetools我想获取 cache_info():

class UserData(object):
    def __init__():
        ...

    @cached(cache=TTLCache(maxsize=1024, ttl=600))
    def get_user_data(self, user_id):
        return self.redis.get_user_data(user_id)

    def get_cache_info():
        return self.get_user_data.cache_info()

我想获取缓存统计信息,如 answer 中所示:

>>> foo.cache_info()
CacheInfo(hits=1, misses=1, maxsize=5, currsize=1)

我知道这是一个不同的缓存(我使用的是第 3 方库),但在上面的文档中 cache_info 确实存在。有没有办法以某种方式获取 TTLCache 统计信息?

最佳答案

通过codedocumentation你应该使用 func.py 中的 ttl_cache:

from cachetools.func import ttl_cache


class UserData(object):
    ...
    @ttl_cache(maxsize=1024, ttl=600)
    def get_user_data(self, user_id):
        return self.redis.get_user_data(user_id)

然后您应该能够调用 UserData.get_user_data.cache_info()

cached 装饰器不维护任何统计信息。

关于python - 使用 cachetools 获取 `cache_info()`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66803745/

相关文章:

caching - 如何以编程方式使 Bitbucket Pipeline 的缓存失效?

c# - MemoryCache.Set 返回删除的缓存项

ruby - 手动生成 Rails 缓存键

python - 如何不每次都为 Flask 中的静态文件重新定义 url

python - Pyparsing 中的递归语法

python - 如何更改 Treeview 的背景颜色

python - 在外部文件中存储字典、正则表达式和变量的最佳方式?

python - 如何在Pycharm中执行代码块科学模式

python - 使这个简单的 for/if block 更像 pythonic

python - 导入错误 : No module named parse