Skip to content

Making non-Sentinel-aware Redis clients aware of Sentinel

License

Notifications You must be signed in to change notification settings

mikroskeem/serpentinised

 
 

Repository files navigation

serpentinised

serpentinised acts as a proxy that allows clients that are unaware of Redis Sentinel to connect to a Redis Sentinel cluster.

Motivation

At Mineteria, we have a few applications using Django that are not aware of Redis Sentinel. Of course, there are also plenty of applications that are unaware of Redis Sentinel. serpentinised can help them cope with the introduction or use of Redis Sentinel.

We previously used redis-ellison. While this solution worked, it had numerous CPU consumption issues, including spawning a redis-cli instance every second. serpentinised connects to the Redis Sentinel server directly and listens for any failover changes.

Docker

You can use serpentinised as a Docker container:

docker run -p 6379:6379 -it -e SERPENTINISED_SENTINEL_ADDRESS=sentinel-service.local:5000 -e SERPENTINISED_SENTINEL_MASTER=mymaster mikroskeem/serpentinised:latest

Usage

Usage of serpentinised:
  -bind string
    	the address to bind to proxy connections to the active Sentinel (default "127.0.0.1:26380")
  -connect-timeout int
    	seconds before a connection to a master times out (default 1)
  -sentinel-address string
    	the address of the Sentinel master
  -sentinel-master string
    	the name of the Sentinel master (default "mymaster")

About

Making non-Sentinel-aware Redis clients aware of Sentinel

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages

  • Go 93.0%
  • Dockerfile 7.0%