Redis¶
Redis is an in-memory data store with on-disk persistence. It offers a high-performace cache that scales exceptionally well, making it an ideal choice for larger applications.
Persistence¶
Redis operates on data in memory, and by default also persists data to snapshots on disk. This is optimized for performance with a minor risk of data loss, which is usually the best configuration for a cache. If you need different behavior, the frequency and type of persistence can be customized or disabled entirely. See Redis Persistence for details.
Connection Options¶
The Redis backend accepts any keyword arguments for redis.Redis
. These can be passed
via CachedSession
:
>>> session = CachedSession('http_cache', backend='redis', host='192.168.1.63', port=6379)
Or via RedisCache
:
>>> backend = RedisCache(host='192.168.1.63', port=6379)
>>> session = CachedSession('http_cache', backend=backend)
API Reference¶
Redis cache backend |
|
A dictionary-like interface for Redis operations |
- class requests_cache.backends.redis.RedisCache(namespace='http_cache', connection=None, **kwargs)[source]¶
Bases:
requests_cache.backends.base.BaseCache
Redis cache backend
- Parameters
namespace – Redis namespace
connection (
Optional
[Redis
]) – Redis connection instance to use instead of creating a new onekwargs – Additional keyword arguments for
redis.Redis
- bulk_delete(keys)¶
Remove multiple responses and their associated redirects from the cache
- clear()¶
Delete all items from the cache
- create_key(request=None, **kwargs)¶
Create a normalized cache key from a request object
- Parameters
request (
Union
[PreparedRequest
,CachedRequest
,None
]) –- Return type
- delete(key)¶
Delete a response or redirect from the cache, as well any associated redirect history
- Parameters
key (
str
) –
- delete_url(url, method='GET', **kwargs)¶
Delete a cached response for the specified request
- delete_urls(urls, method='GET', **kwargs)¶
Delete all cached responses for the specified requests
- get_response(key, default=None)¶
Retrieve a response from the cache, if it exists
- Parameters
key (
str
) – Cache key for the responsedefault – Value to return if key is not in the cache
- Return type
- has_url(url, method='GET', **kwargs)¶
Returns
True
if the specified request is cached
- keys(check_expiry=False)¶
Get all cache keys for redirects and valid responses combined
- remove_expired_responses(expire_after=None)¶
Remove expired and invalid responses from the cache, optionally with revalidation
- response_count(check_expiry=False)¶
Get the number of responses in the cache, excluding invalid (unusable) responses. Can also optionally exclude expired responses.
- Return type
- save_response(response, cache_key=None, expires=None)¶
Save a response to the cache
- values(check_expiry=False)¶
Get all valid response objects from the cache
- Return type
- class requests_cache.backends.redis.RedisDict(namespace, collection_name='http_cache', connection=None, **kwargs)[source]¶
Bases:
requests_cache.backends.base.BaseStorage
A dictionary-like interface for Redis operations
- Notes:
In order to deal with how Redis stores data, all keys will be encoded and all values will be serialized.
The full hash name will be
namespace:collection_name
- bulk_delete(keys)[source]¶
Delete multiple keys from the cache. Does not raise errors for missing keys.
- get(k[, d]) D[k] if k in D, else d. d defaults to None. ¶
- items() a set-like object providing a view on D’s items ¶
- keys() a set-like object providing a view on D’s keys ¶
- pop(k[, d]) v, remove specified key and return the corresponding value. ¶
If key is not found, d is returned if given, otherwise KeyError is raised.
- popitem() (k, v), remove and return some (key, value) pair ¶
as a 2-tuple; but raise KeyError if D is empty.
- setdefault(k[, d]) D.get(k,d), also set D[k]=d if k not in D ¶
- update([E, ]**F) None. Update D from mapping/iterable E and F. ¶
If E present and has a .keys() method, does: for k in E: D[k] = E[k] If E present and lacks .keys() method, does: for (k, v) in E: D[k] = v In either case, this is followed by: for k, v in F.items(): D[k] = v
- values() an object providing a view on D’s values ¶