Skip to main content

A Redis-backed persistent Python dictionary

Project description

redis-json-dict

Actions Status Documentation Status

PyPI version Conda-Forge PyPI platforms

GitHub Discussion

Usage

>>> import redis
... redis_client = redis.Redis("localhost", 6379)
... d = RedisJSONDict(redis_client, prefix="my_dict")
... d
{}

All user modifications, including mutation of nested lists or dicts, are immediately synchronized to the Redis server.

Design Requirements

  • The dictionary implements Python's collections.abc.MutableMapping interface.
  • All values stored in Redis are JSON-encoded, readily inspected with developer eyeballs and possible to operate on from clients in languages other than Python.
  • Keys may be prefixed to reduce the likelihood of collisions when one Redis is shared by multiple applications.
  • No data is cached locally, so it is impossible to obtain a stale result. However, the dictionary may be composed with other libraries, such as cachetools, to implement TTL caching for example.
  • Top-level items like d['sample'] may be accessed without synchronizing the entire dictionary. Nested objects like d['sample']['color'] are supported (but may be less efficient).
  • Mutating nested items, with operations like d['sample']['color'] = 'red' or d['sample']['positions'].append(3) triggers synchronization.

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_json_dict-0.1.tar.gz (12.6 kB view details)

Uploaded Source

Built Distribution

redis_json_dict-0.1-py3-none-any.whl (6.9 kB view details)

Uploaded Python 3

File details

Details for the file redis_json_dict-0.1.tar.gz.

File metadata

  • Download URL: redis_json_dict-0.1.tar.gz
  • Upload date:
  • Size: 12.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/4.0.2 CPython/3.11.8

File hashes

Hashes for redis_json_dict-0.1.tar.gz
Algorithm Hash digest
SHA256 ccac15334ce300ec9e1035ea0b1278b203df404ff011343a93b8c6da113f2feb
MD5 81ddc219889f1615c84d0982e48a058e
BLAKE2b-256 d66485b2136ec4ee7eadc35e0ed3682a4cc3cf8064778a773d09a661ed264a58

See more details on using hashes here.

File details

Details for the file redis_json_dict-0.1-py3-none-any.whl.

File metadata

File hashes

Hashes for redis_json_dict-0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 198c3faabe628f15594d509663a88551bf1f2adfd0501d07b48135a6da61b3dc
MD5 37a3f6876e2f9b7078cdfd98771c85e4
BLAKE2b-256 36c57960a72addd73007eb6435d791ec79d2a8cad654d41c137e23cd0dc85ffe

See more details on using hashes here.

Supported by

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