Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
nodejs Redis Agent which updates TwemProxy (nutcracker) config
branch: master

This branch is 5 commits behind Stono:master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
bin
conf
init.d
lib
spec
.gitignore
README.md
package.json

README.md

Redis-Twemproxy Agent

Intro

A simple nodejs application which will connect to Redis-Sentinel and monitor for the master-change event. It will then update TwemProxy (nutcracker) and restart it.

The basic idea behind it, is so that you have redundancy in your redis shards, when your master dies, a slave is promoted to Master by Redis Sentinel, and then this agent updates your TwemProxy config to point to the new master.

            TwemProxy
        __________|__________
        |                   |
    Master1             Master N
Slave1  SlaveN      Slave 1 Slave N

            Redis Sentinel

A more detailed explanation can be found on an article on my site.

Caveats

Your master names in Redis-Sentinel (sentinel.conf) should match the names of the master nodes in your twemproxy config. I have included examples of sentinel and twemproxy configs in the conf directory

History

This originally started as a gist posted on a twemproxy ticket about doing HA redis. It was then created in GitHub at https://github.com/matschaffer/redis_twemproxy_agent

This fork contains the following changes:

    -   Full yaml parsing of the config file rather than string replacements
    -   Full logging to a specific log file in cli.js
    -   Automatic complete master update upon connection to Redis-Sentinel
    -   An example init.d script, using forever, to run on boot.  Albeit it currently runs as root, haven't got round to securing this yet.

Disclaimer

This is my first ever nodejs app ;)

Something went wrong with that request. Please try again.