File Backend

class cachelib.file.FileSystemCache(cache_dir, threshold=500, default_timeout=300, mode=None, hash_method=<built-in function openssl_md5>)

Bases: BaseCache

A cache that stores the items on the file system. This cache depends on being the only user of the cache_dir. Make absolutely sure that nobody but this cache stores files there or otherwise the cache will randomly delete files therein.

Parameters
  • cache_dir (str) – the directory where cache files are stored.

  • threshold (int) – the maximum number of items the cache stores before it starts deleting some. A threshold value of 0 indicates no threshold.

  • default_timeout (int) – the default timeout that is used if no timeout is specified on set(). A timeout of 0 indicates that the cache never expires.

  • mode (Optional[int]) – the file mode wanted for the cache files, default 0600

  • hash_method (Any) – Default hashlib.md5. The hash method used to generate the filename for cached results.

add(key, value, timeout=None)

Works like set() but does not overwrite the values of already existing keys.

Parameters
  • key (str) – the key to set

  • value (Any) – the value for the key

  • timeout (Optional[int]) – the cache timeout for the key in seconds (if not specified, it uses the default timeout). A timeout of 0 indicates that the cache never expires.

Returns

Same as set(), but also False for already existing keys.

Return type

boolean

clear()

Clears the cache. Keep in mind that not all caches support completely clearing the cache.

Returns

Whether the cache has been cleared.

Return type

boolean

delete(key, mgmt_element=False)

Delete key from the cache.

Parameters
  • key (str) – the key to delete.

  • mgmt_element (bool) –

Returns

Whether the key existed and has been deleted.

Return type

boolean

get(key)

Look up key in the cache and return the value for it.

Parameters

key (str) – the key to be looked up.

Returns

The value if it exists and is readable, else None.

Return type

Any

has(key)

Checks if a key exists in the cache without returning it. This is a cheap operation that bypasses loading the actual data on the backend.

Parameters

key (str) – the key to check

Return type

bool

serializer = <cachelib.serializers.FileSystemSerializer object>
set(key, value, timeout=None, mgmt_element=False)

Add a new key/value to the cache (overwrites value, if key already exists in the cache).

Parameters
  • key (str) – the key to set

  • value (Any) – the value for the key

  • timeout (Optional[int]) – the cache timeout for the key in seconds (if not specified, it uses the default timeout). A timeout of 0 indicates that the cache never expires.

  • mgmt_element (bool) –

Returns

True if key has been updated, False for backend errors. Pickling errors, however, will raise a subclass of pickle.PickleError.

Return type

boolean