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


Download files

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

Source Distribution

redis-collections-0.5.1.tar.gz (23.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

redis_collections-0.5.1-py2.py3-none-any.whl (28.7 kB view details)

Uploaded Python 2Python 3

File details

Details for the file redis-collections-0.5.1.tar.gz.

File metadata

  • Download URL: redis-collections-0.5.1.tar.gz
  • Upload date:
  • Size: 23.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.20.1 setuptools/40.6.2 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.6.7

File hashes

Hashes for redis-collections-0.5.1.tar.gz
Algorithm Hash digest
SHA256 b7023edbd6f46a773fd2ce73322c517acb4f758c7e20e48355696a54d8c00223
MD5 a81c139a481c420cd9fbda0b18994f52
BLAKE2b-256 8881eb1d1bade39c31dee16d67ec709ab5bdd2de5fc1fb298a4e35bb51d0c89b

See more details on using hashes here.

File details

Details for the file redis_collections-0.5.1-py2.py3-none-any.whl.

File metadata

  • Download URL: redis_collections-0.5.1-py2.py3-none-any.whl
  • Upload date:
  • Size: 28.7 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.20.1 setuptools/40.6.2 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.6.7

File hashes

Hashes for redis_collections-0.5.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 f162c1f01b44970e65b55f5f87d679b9ce4acb76ff0f390fc8210270230a7a0a
MD5 0f3ed17314a00cf7d5ce9bc3dc64da38
BLAKE2b-256 fc5bba949b27663449b2ae162b331b4cd408d3943652f27a6412f5b0f79a2e83

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page