A simple redis-like in pure python3, fully asyncio compliant
Project description
redys
A simple redis-like in pure python3, fully asyncio/thread/process compliant !
features
- asyncio compliant
- client Sync (Client) & Async (AClient)
- 100% tested on all platforms ("3.7", "3.8", "3.9", "3.10", "3.11" on ubuntu-latest, macos-latest, windows-latest) NEW
- very quick
classics
commands : get/set/delete/keys & incr/decrsets
commands : sadd/sremqueue
commands : rpush/lpush/rpop/lpoppubsub
commands : subscribe/unsubscribe/get_event & publishcache
commands : setexping()
command ;-)KILL()
command (so a client can kill the server) NEW- 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)
- 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.
nb
- 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 for examples
BTW, I use it in production since 2018: and no problems at all !!!! (it works as excepted)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
redys-0.9.20.tar.gz
(8.0 kB
view hashes)
Built Distribution
redys-0.9.20-py3-none-any.whl
(9.5 kB
view hashes)