/redis-ctl

A web application for Redis Cluster management

Primary LanguagePythonMIT LicenseMIT

Manage your Redis Clusters in a web GUI

Redis Overview

Commit a cluster migration from a HTML form

Slot Migrating

Display cluster nodes in a tidy table

CLUSTER NODES

RedisCtl is a set of Python toolkit with a web UI based on Flask that makes it easy to manage Redis and clusters.

Overview

RedisCtl contains

  • a web UI that displays Redis status and receives commands
  • a daemon that polls each Redis and collect info and runs tasks like slots migrating for clusters

And support thirdparty utilities including

  • Alarm: issue messages when Redis / proxy unreachable or cluster is down
  • Statistic: record information link memory / CPU usage, clients count, commands completed, etc; by default OpenFalcon is included in the source (require an extra pip install requests to work with OpenFalcon module)
  • Containerization: deploy Redis / proxy in container

You could make your own overridings by implementing several interfaces. (in Chinese).

Setup

First, install Python-dev header files and libs

# debain / ubuntu
apt-get install python-dev

# centos
yum install python-devel

Then clone this project and cd in to install dependencies

pip install -r requirements.txt

Run with all configurations default

python main.py

To configure the programs, both configuration source file and environment variables (convenient for docker deployment) are applicable

To use a configure file, copy override_config.py.example to override_config.py, change anything you want. This file would be imported and override any default config or env vars in config.py if available.

To use env vars, like

MYSQL_USERNAME=redisctl MYSQL_PASSWORD=p@55w0rd python main.py

Check config.py for configurable items.

Run the daemon that collects Redis info

python daemon.py

Also you could use similar ways to configure daemon, just like setup up the main server.

IPC

The server and daemon uses /tmp/details.json and /tmp/poll.json as default IPC files. You could change the directory for those temp files by passing the same PERMDIR environ to the web application and the daemon.