使用 cachetools 获取 `cache_info()`
getting `cache_info()` with cachetools
我正在使用 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()
我想获取缓存统计信息,如 :
>>> foo.cache_info()
CacheInfo(hits=1, misses=1, maxsize=5, currsize=1)
我知道这是一个不同的缓存(我使用的是第 3 方库),但在上面的文档中 cache_info
确实存在。有没有办法以某种方式获取 TTLCache
统计信息?
根据 code and documentation 你应该使用 ttl_cache
从 func.py
:
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
装饰器不维护任何统计信息。
我正在使用 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()
我想获取缓存统计信息,如
>>> foo.cache_info()
CacheInfo(hits=1, misses=1, maxsize=5, currsize=1)
我知道这是一个不同的缓存(我使用的是第 3 方库),但在上面的文档中 cache_info
确实存在。有没有办法以某种方式获取 TTLCache
统计信息?
根据 code and documentation 你应该使用 ttl_cache
从 func.py
:
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
装饰器不维护任何统计信息。