Skip to main content

Set of basic Python collections backed by Redis.

Project description

https://travis-ci.org/honzajavorek/redis-collections.svg?branch=master https://coveralls.io/repos/github/honzajavorek/redis-collections/badge.svg?branch=master

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

License: ISC

© 2013-? Honza Javorek <mail@honzajavorek>

This work is licensed under ISC license.

Project details


Release history Release notifications

This version
History Node

0.4.2

History Node

0.4.1

History Node

0.4.0

History Node

0.3.2

History Node

0.3.1

History Node

0.3.0

History Node

0.2.1

History Node

0.2.0

History Node

0.1.8

History Node

0.1.7

History Node

0.1.5

History Node

0.1.4

History Node

0.1.3

History Node

0.1.2

History Node

0.1.1

History Node

0.1.0

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
redis-collections-0.4.2.tar.gz (23.4 kB) Copy SHA256 hash SHA256 Source None Nov 28, 2016

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging CloudAMQP CloudAMQP RabbitMQ AWS AWS Cloud computing Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page