RedisDict is built exclusively as a dictionary, without focusing on other collections.
This means that all features are available as they build on top of each other.
RedisDict has namespacing by default, allowing users to avoid unintentional collisions in production, which are really difficult to debug. Learned that lesson the hard way.
RedisDict also has more support for different types, relying not just on json encoding/decoding but passing those to json so even nested types such as list, dictionaries there type support.
Let's say you would like to build a cache to store webpages for 60 minutes.
```
cache = RedisDict(expire=timedelta(minutes=60))
cache['gone'] = 'in an hour'
```
And RedisDict only makes use of a single dependency, redis.py.
How does it compare with pottery? https://pypi.org/project/pottery/
RedisDict is built exclusively as a dictionary, without focusing on other collections.
This means that all features are available as they build on top of each other. RedisDict has namespacing by default, allowing users to avoid unintentional collisions in production, which are really difficult to debug. Learned that lesson the hard way.
RedisDict also has more support for different types, relying not just on json encoding/decoding but passing those to json so even nested types such as list, dictionaries there type support.
Let's say you would like to build a cache to store webpages for 60 minutes.
```
cache = RedisDict(expire=timedelta(minutes=60))
cache['gone'] = 'in an hour'
```
And RedisDict only makes use of a single dependency, redis.py.