A utility package to save arbitrary nested Python dicts and objects in Redis.
This package can be used to save arbitrary values in a hierarchy. Each element
of this hierarchy is referenced by a dotted path like this: a.b.c
. When
saving a nested dictionary, its nested contents automatically get translated
to such a dotted path by its string keys:
# `23` can be read by specifying the path "a.b.c":
{
"a": {
"b": {
"c": 23
}
}
}
A special feature of this package is concurrent access: It can be safely used from more than one process. The locking implementation is also separated and can be used on its own if desirable. Also, the implementation is clever enough to not require a global lock if changes are done in different parts of the hierarchy.
You can store every object in redicts
that works with json.dumps()
.
We use redis
quite a lot in our day-to-day work and often want to share
values between different (micro-)services. This package helps us to do that
safely and easily.
Documentation can be found on ReadTheDocs:
http://redicts.readthedocs.io/en/latest
If redis is started with default host/port/password, this should work:
>>> from redicts import section
>>> with section("a.b.c") as sec:
... # Setting values:
... sec["my-value"] = 42
... sec["my-part"] = {"key": "value"}
...
... # Reading values:
... sec["my-value"].val() # => 42
... sec["my-part.key"].val() # => "value"