DynamoDb Backend¶
- class cachelib.dynamodb.DynamoDbCache(table_name='python-cache', default_timeout=300, key_field='cache_key', expiration_time_field='expiration_time', key_prefix=None, **kwargs)¶
Bases:
BaseCache
Implementation of cachelib.BaseCache that uses an AWS DynamoDb table as the backend.
Your server process will require dynamodb:GetItem and dynamodb:PutItem IAM permissions on the cache table.
Limitations: DynamoDB table items are limited to 400 KB in size. Since this class stores cached items in a table, the max size of a cache entry will be slightly less than 400 KB, since the cache key and expiration time fields are also part of the item.
- Parameters:
table_name (str | None) – The name of the DynamoDB table to use
default_timeout (int) – Set the timeout in seconds after which cache entries expire
key_field (str | None) – The name of the hash_key attribute in the DynamoDb table. This must be a string attribute.
expiration_time_field (str | None) – The name of the table attribute to store the expiration time in. This will be an int attribute. The timestamp will be stored as seconds past the epoch. If you configure this as the TTL field, then DynamoDB will automatically delete expired entries.
key_prefix (str | None) – A prefix that should be added to all keys.
kwargs (Any) –
- add(key, value, timeout=None)¶
Works like
set()
but does not overwrite the values of already existing keys.- Parameters:
- Returns:
Same as
set()
, but alsoFalse
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)¶
Deletes an item from the cache. This is a no-op if the item doesn’t exist
- get(key)¶
Get a cache item
- 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.
- serializer = <cachelib.serializers.DynamoDbSerializer object>¶
- set(key, value, timeout=None)¶
Add a new key/value to the cache (overwrites value, if key already exists in the cache).
- Parameters:
- Returns:
True
if key has been updated,False
for backend errors. Pickling errors, however, will raise a subclass ofpickle.PickleError
.- Return type:
boolean