resec - ReSeC- Redis Service Consul

  •        3

Resec is a successor to Redis Sentinel and redishappy for handling high availability failover for Redis. It avoids Redis Sentinel problems of remembering all the sentinels and all the redis servers that ever appeared in the replication cluster.

https://github.com/YotpoLtd/resec

Tags
Implementation
License
Platform

   




Related Projects

Cm_Cache_Backend_Redis - A Zend_Cache backend for Redis with full support for tags (works great with Magento)

  •    PHP

There are two supported methods of achieving High Availability and Load Balancing with Cm_Cache_Backend_Redis.You may achieve high availability and load balancing using Redis Sentinel. To enable use of Redis Sentinel the server specified should be a comma-separated list of Sentinel servers and the sentinel_master option should be specified to indicate the name of the sentinel master set (e.g. 'mymaster'). If using sentinel_master you may also specify load_from_slaves in which case a random slave will be chosen for performing reads in order to load balance across multiple Redis instances. Using the value '1' indicates to only load from slaves and '2' to include the master in the random read slave selection.

Patroni - A template for PostgreSQL High Availability with ZooKeeper, etcd, or Consul

  •    Python

Patroni is a template for you to create your own customized, high-availability solution using Python and - for maximum accessibility - a distributed configuration store like ZooKeeper, etcd, Consul or Kubernetes. Database engineers, DBAs, DevOps engineers, and SREs who are looking to quickly deploy HA PostgreSQL in the datacenter-or anywhere else-will hopefully find it useful.

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.

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-cluster - HA Redis Cluster with Sentinel by Docker Compose

  •    Shell

Using Docker Compose to setup a redis cluster with sentinel.


redis_failover - redis_failover is a ZooKeeper-based automatic master/slave failover solution for Ruby

  •    Ruby

redis_failover provides a full automatic master/slave failover solution for Ruby. Redis does not currently provide an automatic failover capability when configured for master/slave replication. When the master node dies, a new master must be manually brought online and assigned as the slave's new master. This manual switch-over is not desirable in high traffic sites where Redis is a critical part of the overall architecture. The existing standard Redis client for Ruby also only supports configuration for a single Redis server. When using master/slave replication, it is desirable to have all writes go to the master, and all reads go to one of the N configured slaves. This gem (built using ZK) attempts to address these failover scenarios. One or more Node Manager daemons run as background processes and monitor all of your configured master/slave nodes. When the daemon starts up, it automatically discovers the current master/slaves. Background watchers are setup for each of the redis nodes. As soon as a node is detected as being offline, it will be moved to an "unavailable" state. If the node that went offline was the master, then one of the slaves will be promoted as the new master. All existing slaves will be automatically reconfigured to point to the new master for replication. All nodes marked as unavailable will be periodically checked to see if they have been brought back online. If so, the newly available nodes will be configured as slaves and brought back into the list of available nodes. Note that detection of a node going down should be nearly instantaneous, since the mechanism used to keep tabs on a node is via a blocking Redis BLPOP call (no polling). This call fails nearly immediately when the node actually goes offline. To avoid false positives (i.e., intermittent flaky network interruption), the Node Manager will only mark a node as unavailable if it fails to communicate with it 3 times (this is configurable via --max-failures, see configuration options below). Note that you can (and should) deploy multiple Node Manager daemons since they each report periodic health reports/snapshots of the redis servers. A "node strategy" is used to determine if a node is actually unavailable. By default a majority strategy is used, but you can also configure "consensus" or "single" as well.

consul-alerts - A simple daemon to send notifications based on Consul health checks

  •    Go

A highly available daemon for sending notifications and reminders based on Consul health checks. Under the covers, consul-alerts leverages Consul's own leadership election and KV store to provide automatic failover and seamless operation in the case of a consul-alerts node failure and ensures that your notifications are still sent.

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.

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

  •    C

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.

hashi-ui - A modern user interface for @hashicorp Consul & Nomad

  •    Javascript

For Nomad, it was quite simple, no mobile-optimized, (somewhat) feature-complete and live-updating interface existed.Today the Consul and Nomad UI exist in the same binary, but do not "cross-talk" to each other, but long term goal is to integrate them even closer, so from Nomad Job UI you can see Consul health check status for the job tasks, and vice versa be able to cross-link between two otherwise distinct systems.

redis-windows - Vagrant redis configuration and the binary releases of MS Open Tech redis port of windows

  •    Shell

This project contains the binary releases of MS Open Tech redis port of windows as well as a vagrant configuration for redis letting you run the native version of Redis in a Virtual Box VM.Whilst it's recommended to use Redis on Linux in production, it is often useful for developers on Windows platforms to have their own local version of redis running to develop with.

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.

aioredis - asyncio (PEP 3156) Redis support

  •    Python

asyncio (PEP 3156) Redis client library.hiredis is preferred requirement. Pure-python protocol parser is implemented as well and can be used through parser parameter.

FastoNoSQL - Cross platform Redis, Memcached, SSDB, LevelDB, RocksDB, UnQLite, LMDB, ForestDB, Pika, Dynomite GUI management tool

  •    C++

FastoNoSQL — is a crossplatform Redis, Memcached, SSDB, LevelDB, RocksDB, UnQLite, LMDB, UpscaleDB, ForestDB, Pika management tool, also FastoNoSQL is platform for NoSQL databases, you can add your own implementation for different databases.

rediscala - Non-blocking, Reactive Redis driver for Scala (with Sentinel support)

  •    Scala

A Redis client for Scala (2.10+) and (AKKA 2.2+) with non-blocking and asynchronous I/O operations.Reactive : Redis requests/replies are wrapped in Futures.

aredis - redis client for Python asyncio (has support for redis server, sentinel and cluster)

  •    Python

aredis requires a running Redis server.Please run test script in benchmarks dir to confirm the benchmark.

fabio - A fast, modern, zero-conf load balancing HTTP(S) router for deploying microservices managed by consul

  •    Go

fabio is a fast, modern, zero-conf load balancing HTTP(S) and TCP router for deploying applications managed by consul.Register your services in consul, provide a health check and fabio will start routing traffic to them. No configuration required. Deployment, upgrading and refactoring has never been easier. It integrates with Consul, Vault, Amazon ELB, Amazon API Gateway and more.

ansible-redis - Highly-configurable Ansible role to install Redis and Redis Sentinel from source

  •    Shell

Below are a few example playbooks and configurations for deploying a variety of Redis architectures. This role expects to be run as root or as a user with sudo privileges.