Set of basic Python collections backed by Redis.
Project description
redis-collections is a Python library that provides a high-level interface to Redis, the excellent key-value store.
Quickstart
Install the library with pip install redis-collections. Import the collections from the top-level redis_collections package.
Standard collections
The standard collections (e.g. Dict, List, Set) behave like their Python counterparts:
>>> from redis_collections import Dict, List, Set >>> D = Dict() >>> D['answer'] = 42 >>> D['answer'] 42
Collection | Redis type | Description |
---|---|---|
Dict | Hash | Emulates Python’s dict |
List | List | Emulates Python’s list |
Set | Set | Emulates Python’s set |
Counter | Hash | Emulates Python’s collections.Counter |
DefaultDict | Hash | Emulates Python’s collections.defaultdict |
Deque | List | Emulates Python’s collections.deque |
Syncable collections
The syncable collections in this package provide types whose contents are kept in memory. When their sync method is called those contents are written to Redis:
>>> from redis_collections import SyncableDict >>> with SyncableDict() as D: ... D['a'] = 1 # No write to Redis ... D['a'] += 1 # No read from or write to Redis >>> D['a'] # D.sync() is called at the end of the with block 2
Collection | Python type | Description |
---|---|---|
SyncableDict | dict | Syncs to a Redis Hash |
SyncableList | list | Syncs to a Redis List |
SyncableSet | set | Syncs to a Redis Set |
SyncableCounter | collections.Counter | Syncs to a Redis Hash |
SyncableDeque | collections.deque | Syncs to a Redis List |
SyncableDefaultDict | collections.defaultdict | Syncs to a Redis Hash |
Other collections
The LRUDict collection stores recently used items in in memory. It pushes older items to Redis:
>>> from redis_collections import LRUDict >>> D = LRUDict(maxsize=2) >>> D['a'] = 1 >>> D['b'] = 2 >>> D['c'] = 2 # 'a' is pushed to Redis and 'c' is stored locally >>> D['a'] # 'b' is pushed to Redis and 'a' is retrieved for local storage 1 >>> D.sync() # All items are copied to Redis
The SortedSetCounter provides access to the Redis Sorted Set type:
>>> from redis_collections import SortedSetCounter >>> ssc = SortedSetCounter([('earth', 300), ('mercury', 100)]) >>> ssc.set_score('venus', 200) >>> ssc.get_score('venus') 200.0 >>> ssc.items() [('mercury', 100.0), ('venus', 200.0), ('earth', 300.0)]
Documentation
For more information, see redis-collections.readthedocs.io
Maintainers
- Bo Bayles (@bbayles)
- Honza Javorek (@honzajavorek)
License: ISC
© 2016-? Bo Bayles <bbayles@gmail.com> and contributors © 2013-2016 Honza Javorek <mail@honzajavorek.cz> and contributors
This work is licensed under ISC license.
This library is not affiliated with Redis Labs, Redis, or redis-py. Govern yourself accordingly!
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for redis_collections-0.11.0-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0f6cda00666fdd26e3b8ca47da13a653eaf4cc4e45470a3b09f17d65061fea8a |
|
MD5 | 62cf6d851a8f854a634bc664cf6dd51c |
|
BLAKE2-256 | 7fd1e03aa6e3178baaafb4f64813d4016b1dfbfeb73c8b153f7b13709c6f9a4f |