Lightweight Python utilities for working with [Redis](http://redis.io).
The purpose of [walrus](https://github.com/coleifer/walrus) is to make working with Redis in Python a little easier by wrapping rich objects in Pythonic containers. walrus consists of:
- Pythonic container classes for the Redis data-types:
- [Sorted Set](https://walrus.readthedocs.io/en/latest/containers.html#sorted-sets-zset)
- [Array](https://walrus.readthedocs.io/en/latest/containers.html#arrays) (custom type)
- [Cache](https://walrus.readthedocs.io/en/latest/cache.html) implementation that exposes several decorators for caching function and method calls.
- [Full-text search](https://walrus.readthedocs.io/en/latest/full-text-search.html) supporting set operations.
- [Graph store](https://walrus.readthedocs.io/en/latest/graph.html)
- Active-record style [Models](https://walrus.readthedocs.io/en/latest/models.html) that support persisting structured information and performing complex queries using secondary indexes.
- More? [More!](https://walrus.readthedocs.io)
Persistent structures implemented on top of Hashes. Supports secondary indexes to allow filtering on equality, inequality, ranges, less/greater-than, and a basic full-text search index. The full-text search features a boolean search query parser, porter stemmer, stop-word filtering, and optional double-metaphone implementation.
### Found a bug?
Please open a [github issue](https://github.com/coleifer/walrus/issues/new) and I will try my best to fix it!
### Alternative Backends
Walrus also can integrate with the Redis-like databases [rlite](https://github.com/seppo0010/rlite), [ledis](http://ledisdb.com/), and [vedis](http://vedis.symisc.net). Check the [documentation](https://walrus.readthedocs.io/en/latest/alt-backends.html) for more details.