All Projects → DriverX → aioredis-cluster

DriverX / aioredis-cluster

Licence: MIT license
Redis Cluster support extension for aioredis

Programming Languages

python
139335 projects - #7 most used programming language
Makefile
30231 projects

Projects that are alternatives of or similar to aioredis-cluster

Aioredis Py
asyncio (PEP 3156) Redis support
Stars: ✭ 2,003 (+9438.1%)
Mutual labels:  redis-client, asyncio, aioredis, python37, python38, python39
hypercorn-fastapi-docker
Docker image with Hypercorn for FastAPI apps in Python 3.7, 3.8, 3.9. Ready for HTTP2 and HTTPS
Stars: ✭ 18 (-14.29%)
Mutual labels:  asyncio, python37, python38, python39
prisma-client-py
Prisma Client Python is an auto-generated and fully type-safe database client designed for ease of use
Stars: ✭ 739 (+3419.05%)
Mutual labels:  asyncio, python37, python38, python39
Aredis
redis client for Python asyncio (has support for redis server, sentinel and cluster)
Stars: ✭ 576 (+2642.86%)
Mutual labels:  redis-cluster, redis-client, asyncio
mcpyrate
Advanced macro expander and language lab for Python.
Stars: ✭ 35 (+66.67%)
Mutual labels:  python37, python38, python39
racompass
An advanced GUI for Redis. Modern. Efficient. Fast. A faster and robust Redis management tool. For developers that need to manage data with confidence.It supports Redis modules now!
Stars: ✭ 26 (+23.81%)
Mutual labels:  cluster, redis-cluster, redis-client
Pydantic
Data parsing and validation using Python type hints
Stars: ✭ 8,362 (+39719.05%)
Mutual labels:  python37, python38, python39
tukaan
A modern, cross platform Python toolkit for creating desktop GUI applications. Contributors are welcome!
Stars: ✭ 97 (+361.9%)
Mutual labels:  python37, python38, python39
docker-cgi-python
🐳Docker file for cgi using python2.7, 3.6, 3.7, 3.8, 3.9 and 3.10🐍
Stars: ✭ 13 (-38.1%)
Mutual labels:  python37, python38, python39
rueidis
A Fast Golang Redis RESP3 client that supports Client Side Caching, Auto Pipelining, Generics OM, RedisJSON, RedisBloom, RediSearch, RedisAI, RedisGears, etc.
Stars: ✭ 422 (+1909.52%)
Mutual labels:  redis-cluster, redis-client, redis-cluster-client
flake8-annotations
Flake8 Type Annotation Checking
Stars: ✭ 117 (+457.14%)
Mutual labels:  python37, python38, python39
Redis Game Transaction
在大型游戏中经常使用分布式,分布式中因为游戏逻辑会经常游戏事务,借助redis特性我们可以实现分布式锁和分布式事务。很多redis集群不支持redis的事务特性。 这个框架用来解决分布式服务器下redis集群事务失效的情况下,基于分布式锁完成分布式事务。支持独占锁,共享锁,读写锁,并且支持事务提交失败情况下的回滚操作,让开发者可以有更多时间侧重游戏逻辑.
Stars: ✭ 124 (+490.48%)
Mutual labels:  redis-cluster, redis-client
Csredis
.NET Core or .NET Framework 4.0+ client for Redis and Redis Sentinel (2.8) and Cluster. Includes both synchronous and asynchronous clients.
Stars: ✭ 1,714 (+8061.9%)
Mutual labels:  redis-cluster, redis-client
Redis
Type-safe Redis client for Golang
Stars: ✭ 13,117 (+62361.9%)
Mutual labels:  redis-cluster, redis-client
Anotherredisdesktopmanager
🚀🚀🚀A faster, better and more stable redis desktop manager [GUI client], compatible with Linux, Windows, Mac. What's more, it won't crash when loading massive keys.
Stars: ✭ 17,704 (+84204.76%)
Mutual labels:  redis-cluster, redis-client
Php Redis Client
RedisClient is a fast, fully-functional and user-friendly client for Redis, optimized for performance. RedisClient supports the latest versions of Redis starting from 2.6 to 6.0
Stars: ✭ 112 (+433.33%)
Mutual labels:  redis-cluster, redis-client
Camellia
camellia framework by netease-im. provider: 1) redis-client; 2) redis-proxy(redis-sentinel/redis-cluster); 3) hbase-client; 4) others
Stars: ✭ 146 (+595.24%)
Mutual labels:  redis-cluster, redis-client
Cachingframework.redis
Distributed caching based on StackExchange.Redis and Redis. Includes support for tagging and is cluster-compatible.
Stars: ✭ 209 (+895.24%)
Mutual labels:  redis-cluster, redis-client
Ioredis
🚀 A robust, performance-focused, and full-featured Redis client for Node.js.
Stars: ✭ 9,754 (+46347.62%)
Mutual labels:  redis-cluster, redis-client
Iodine
iodine - HTTP / WebSockets Server for Ruby with Pub/Sub support
Stars: ✭ 720 (+3328.57%)
Mutual labels:  cluster, redis-client

aioredis_cluster

PyPI version aioredis-cluster CI/CD

Redis Cluster support for aioredis (support only v1.x.x).

Many implementation features were inspired by go-redis project.

Requirements

Features

  • commands execute failover (retry command on other node in cluster)
  • support resharding replies ASK/MOVED
  • restore cluster state from alive nodes
  • one node is enough to know the topology and initialize client
  • cluster state auto reload

Limitations

Commands with limitations

  • Keys in mget/mset must provide one key slot.
    # works
    await redis.mget("key1:{foo}", "key2:{foo}")
    
    # throw RedisClusterError
    await redis.mget("key1", "key2")

Commands are not supported

Redis methods below do not works and not supported in cluster mode implementation.

cluster_add_slots
cluster_count_failure_reports
cluster_count_key_in_slots
cluster_del_slots
cluster_failover
cluster_forget
cluster_get_keys_in_slots
cluster_meet
cluster_replicate
cluster_reset
cluster_save_config
cluster_set_config_epoch
cluster_setslot
cluster_readonly
cluster_readwrite
client_setname
shutdown
slaveof
script_kill
move
select
flushall
flushdb
script_load
script_flush
script_exists
scan
iscan
quit
swapdb
migrate
migrate_keys
wait
bgrewriteaof
bgsave
config_rewrite
config_set
config_resetstat
save
sync
pipeline
multi_exec

But you can always execute command you need on concrete node on cluster with usual aioredis.RedisConnection, aioredis.ConnectionsPool or high-level aioredis.Redis interfaces.

Installation

pip install aioredis-cluster

Usage

import aioredis_cluster

redis = await aioredis_cluster.create_redis_cluster([
    "redis://redis-cluster-node1",
])

# or
redis = await aioredis_cluster.create_redis_cluster([
    "redis://redis-cluster-node1",
    "redis://redis-cluster-node2",
    "redis://redis-cluster-node3",
])

# or
redis = await aioredis_cluster.create_redis_cluster([
    ("redis-cluster-node1", 6379),
])

await redis.set("key", "value", expire=180)

redis.close()
await redis.wait_closed()

License

The aioredis_cluster is offered under MIT license.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].