corvus - A fast and lightweight Redis Cluster Proxy for Redis 3.0

  •        849

Corvus is a fast and lightweight redis cluster proxy for redis 3.0 with cluster mode enabled.Most redis client implementations don't support redis cluster. We have a lot of services relying on redis, which are written in Python, Java, Go, Nodejs etc. It's hard to provide redis client libraries for multiple languages without breaking compatibilities. We used twemproxy before, but it relies on sentinel for high availabity, it also requires restarting to add or remove backend redis instances, which causes service interruption. And twemproxy is single threaded, we have to deploy multiple twemproxy instances for large number of clients, which causes the sa headaches.

https://github.com/eleme/corvus

Tags
Implementation
License
Platform

   




Related Projects

redis-migrate-tool - A convenient and useful tool for migrating data between redis group.

  •    C

redis-migrate-tool is a convenient and useful tool for migrating data between redis.Please install automake, libtool, autoconf and bzip2 at first.

twitter-twemproxy

  •    C

twemproxy (pronounced "two-em-proxy"), aka nutcracker is a fast and lightweight proxy for memcached and redis protocol. It was built primarily to reduce the number of connections to the caching servers on the backend. This, together with protocol pipelining and sharding enables you to horizontally scale your distributed caching architecture.

Reborn - yet another fast distributed solution for Redis

  •    Go

Reborn is a proxy based high performance Redis cluster solution written in Go/C, an alternative to Redis. Reborn supports multiple stateless proxy with multiple redis instances. Reborn is engineered to elastically scale, Easily add or remove redis or proxy instances on-demand/dynamically.

codis - Proxy based Redis cluster solution supporting pipeline and scaling dynamically

  •    Go

Codis is a proxy based high performance Redis cluster solution written in Go. It is production-ready and widely used at wandoujia.com and many companies. You can see Codis Releases for latest and most stable realeases.

serf - Service orchestration and management tool

  •    Go

Serf is a decentralized solution for service discovery and orchestration that is lightweight, highly available, and fault tolerant.Serf runs on Linux, Mac OS X, and Windows. An efficient and lightweight gossip protocol is used to communicate with other nodes. Serf can detect node failures and notify the rest of the cluster. An event system is built on top of Serf, letting you use Serf's gossip protocol to propagate events such as deploys, configuration changes, etc. Serf is completely masterless with no single point of failure.


redis-cerberus - Redis Cluster Proxy

  •    C++

A Redis cluster proxy.

docker-redis-cluster - Dockerfile for Redis Cluster (redis 3.0+)

  •    Makefile

Docker image with redis built and installed from source. The main usage for this container is to test redis cluster code. For example in https://github.com/Grokzen/redis-py-cluster repo.

redis-py-cluster - Python cluster client for the official redis cluster. Redis 3.0+.

  •    Python

This client provides a client for redis cluster that was added in redis 3.0. This Readme contains a reduced version of the full documentation.

RedisShake - redis-shake is a tool for synchronizing data between two redis databases

  •    Go

RedisShake is mainly used to synchronize data from one redis to another. Thanks to the Douyu's WSD team for the support. Redis-shake is developed and maintained by NoSQL Team in Alibaba-Cloud Database department.

Go Redis - Type-safe Redis client for Golang

  •    Go

Redis client for Golang. It supports Publish /Subscribe. Transactions. Pipeline and TxPipeline. Scripting. Timeouts. Redis Sentinel. Redis Cluster. Cluster of Redis Servers without using cluster mode and Redis Sentinel. Ring. Instrumentation. Cache friendly. Rate limiting. Distributed Locks.

redis-go-cluster - redis cluster client implementation in Go

  •    Go

redis-go-cluster is a golang implementation of redis client based on Gary Burd's Redigo. It caches slot info at local and updates it automatically when cluster change. The client manages a connection pool for each node, uses goroutine to execute as concurrently as possible, which leads to its high efficiency and low lantency. redis-go-cluster has compatible interface to Redigo, which uses a print-like API for all redis commands. When executing a command, it need a key to hash to a slot, then find the corresponding redis node. Do method will choose first argument in args as the key, so commands which are independent from keys are not supported, such as SYNC, BGSAVE, RANDOMKEY, etc.

Redisson - Redis based In-Memory Data Grid for Java

  •    Java

Redisson - distributed Java objects and services (Set, Multimap, SortedSet, Map, List, Queue, BlockingQueue, Deque, BlockingDeque, Semaphore, Lock, AtomicLong, Map Reduce, Publish / Subscribe, Bloom filter, Spring Cache, Executor service, Tomcat Session Manager, Scheduler service, JCache API) on top of Redis server. Rich Redis client.

ioredis - A robust, performance-focused and full-featured Redis client for Node and io.js

  •    Javascript

ioredis is a robust, full-featured Redis client that is used in the world's biggest online commerce company Alibaba and many other awesome companies. It supports Cluster, Sentinel, Pipelining and of course Lua scripting & Pub/Sub (with the support of binary messages), It works with Node callbacks and Native promises, GEO commands, TLS, Lua scripting and lot more.

godis - A Golang implemented Redis Server and Cluster. Go 语言实现的 Redis 服务器和分布式集群

  •    Go

Godis is a golang implementation of Redis Server, which intents to provide an example of writing a high concurrent middleware using golang. If you could read Chinese, you can find more details in My Blog.

lettuce-core - Advanced Java Redis client for thread-safe sync, async, and reactive usage

  •    Java

Advanced and thread-safe Java Redis client for synchronous, asynchronous, and reactive usage. Supports Cluster, Sentinel, Pipelining, Auto-Reconnect, Codecs and much more.

csredis - .NET core for Redis

  •    CSharp

.NETCore or .NetFramework 4.5+ client for Redis and Redis Sentinel (2.8) and Cluster. Includes both synchronous and asynchronous clients.

Tendis - Tendis is a high-performance distributed storage system fully compatible with the Redis protocol

  •    C++

Tendis is a high-performance distributed storage system which is fully compatible with the Redis protocol. It uses RocksDB as the storage engine, and all data is stored to disks through RocksDB. Users can access Tendis using a Redis client, and the application hardly needs to be changed. In addition, Tendis supports storage capacity far exceeding memory, which can greatly reduce user storage costs. Similar to Redis clusters, Tendis uses a decentralized distributed solution. The gossip protocol is used for communication between nodes, and all nodes in a cluster can be routed to the correct node when a user accesses. Cluster nodes support automatic discovery of other nodes, detect faulty nodes, and ensure the application is almost not affected when the master node failed.

predis - Flexible and feature-complete Redis client for PHP and HHVM

  •    PHP

Flexible and feature-complete Redis client for PHP >= 5.3 and HHVM >= 2.3.0.Predis does not require any additional C extension by default, but it can be optionally paired with phpiredis to lower the overhead of the serialization and parsing of the Redis RESP Protocol. For an experimental asynchronous implementation of the client you can refer to Predis\Async.

go-redis-server - A Go implementation of the Redis server protocol

  •    Go

There are plenty of good client implementations of the redis protocol, but not many server implementations. go-redis-server is a helper library for building server software capable of speaking the redis protocol. This could be an alternate implementation of redis, a custom proxy to redis, or even a completely different backend capable of "masquerading" its API as a redis database.






We have large collection of open source products. Follow the tags from Tag Cloud >>


Open source products are scattered around the web. Please provide information about the open source projects you own / you use. Add Projects.