A simple redis-like in pure python3, fully asyncio compliant
A simple redis-like in pure python3, fully asyncio/thread/process compliant !
- asyncio compliant
- client Sync (Client) & Async (AClient)
- very quick
- classics commands : get/set/delete/keys & incr/decr
- sets commands : sadd/srem
- queue commands : rpush/lpush/rpop/lpop
- pubsub commands : subscribe/unsubscribe/get_event & publish
- cache commands : setex
- ping command ;-)
- exchange everything that is pickable (except None)
- raise real python exception in client side
- minimal code size
- works well on GAE Standard (2nd generation/py37)
- unittests are autonomous (it runs a server)
- just in-memory !
### why ?
Redis is great, but overbloated for my needs. Redys is simple, you can start the server side in an asyncio loop, and clients can interact with a simple in-memory db. Really useful when clients are in async/threads/process(workers)/multi-hosts world, to share a unique source of truth.
- The sync client (Client) use threads, so it can’t live in the same loop as the server (Server). It’s better to use it in another thread or process.
- The async client (AClient) can live in the same loop as the server (Server), but don’t forget to await each methods (which are coroutines in async version)
- Not fully/concurrency tested. Use at own risk ;-)
- See [tests](https://github.com/manatlan/redys/blob/master/tests.py) for examples
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
|Filename, size & hash SHA256 hash help||File type||Python version||Upload date|
|redys-0.9.5-py2.py3-none-any.whl (5.8 kB) Copy SHA256 hash SHA256||Wheel||py2.py3|
|redys-0.9.5.tar.gz (4.1 kB) Copy SHA256 hash SHA256||Source||None|