3

I'm using cachetools and I want to get the 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()

I want to get the cache statistics as appear in this answer:

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

I know that's a different cache (I'm using 3rd party library) but in the documentation above the cache_info does exist. Is there a way to get the TTLCache statistics somehow?

ItayB
  • 10,377
  • 9
  • 50
  • 77

1 Answers1

3

By the code and documentation you should use ttl_cache from 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)

You should then be able to call UserData.get_user_data.cache_info().

cached decorator does not maintain any statistics.

nejcs
  • 1,212
  • 10
  • 14