Search code examples
pythoncaching

Python in-memory cache with time to live


I have multiple threads running the same process that need to be able to to notify each other that something should not be worked on for the next n seconds its not the end of the world if they do however.

My aim is to be able to pass a string and a TTL to the cache and be able to fetch all the strings that are in the cache as a list. The cache can live in memory and the TTL's will be no more than 20 seconds.

Does anyone have a any suggestions for how this can be accomplished?


Solution

  • You can use the expiringdict module:

    The core of the library is ExpiringDict class which is an ordered dictionary with auto-expiring values for caching purposes.

    In the description they do not talk about multithreading, so in order not to mess up, use a Lock.