Redis tool list
Here is a Redis tool list. I hope you will find one or two of them that you’d like to try out.
Table of Contents
- Redis Cluster
- Redis Variety
- Redis Proxy
- Redis Module
- Redis Client
- Redis Data Migration
- Redis Monitor
- Redis Admin Web & UI
- Redis Golang Packages
- Redis Based Lock&Cache
- Redis Ecosystem
Redis Cluster
Project Name | Stars | Lang | Description |
---|---|---|---|
Codis | 9113(2019/04/06) | 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. |
x-pipe | 791 | Java | Redis 多數據中心集羣,一是爲了提升可用性,解決數據中心 DR(Disaster Recovery) 問題,二是提升訪問性能,每個數據中心可以讀取當前數據中心的數據,無需跨機房讀數據。 |
cc | 32(2019/04/06) | Go & Js | This is a Redis Cluster Controller to control the state of the cluster nodes and provide http api and tools(both command line and web ui). Star: 17(until 2017/08/19). |
Redis Variety
Project Name | Stars(until 2019/04/14) | Lang | Description |
---|---|---|---|
Pika | 2679 | C++ | Pika is a nosql compatible with redis protocol, it is developed by Qihoo’s DBA and infrastructure team, and it is widely used in QiHoo. Pika is a persistent huge storage service , compatible with the vast majority of redis interfaces (details), including string, hash, list, zset, set and management interfaces. With the huge amount of data stored, redis may suffer for a capacity bottleneck, and pika was born for solving it. Except huge storage capacity, pika also support master-slave mode by slaveof command, including full and partial synchronization. |
webdis | 2099 | C | A very simple web server providing an HTTP interface to Redis. It uses hiredis, jansson, libevent, and http-parser |
ardb | 1309 | C++ | A redis protocol compatible nosql, it support multiple storage engines as backend like Google’s LevelDB, Facebook’s RocksDB, OpenLDAP’s LMDB, PerconaFT, WiredTiger, ForestDB. |
Pedis | 1027 | C++ | NoSQL data store using the SEASTAR framework, compatible with REDIS. |
Qedis | 54 | C++ | A C++11 implementation of distributed redis server, use Leveldb for persist storage.(including cluster) |
AliRedis | C | AliRedis, which is developed by Alibaba, use a new nginx-like(one-master-multi-worker) framework, in order to get full use of the CPU cores. | |
Pushlet | 139 | JavaScript | Pushlet 是一個開源的 Comet 框架,Pushlet使用了觀察者模型:客戶端發送請求,訂閱感興趣的事件;服務器端爲每個客戶端分配一個會話 ID 作爲標記,事件源會把新產生的事件以多播的方式發送到訂閱者的事件隊列裏。 |
xredis-server | 50 | C++ | redis-server is a redis server framework library write by C++, using this library you can develop redis protocol compatible server easily. xredis-server requires libevent. |
qdb | 327 | Go | A fast, high availability, fully Redis compatible store engine. |
vire | 167 | C | vire (pronounced “vip-redis”) is a multithread redis(based on redis-3.2.0) maintains in vipshop. |
swapdb | 269 | C | A redis compatiable storage which support data exchange between memory and disk. |
ApsaraCache | 848 | C | ApsaraCache is based on the Redis official release 4.0 and has many features and performance enhancements. ApsaraCache has proven to be very stable and efficient in production environment. |
titan | 658 | Go | A distributed implementation of Redis compatible layer based on TiKV. |
KeyDB | 1459 | C++ | a high performance fork of Redis focussing on multithreading, memory efficiency, and high throughput. In addition to multithreading KeyDB also has features only available in Redis Enterprise such as FLASH storage support, and some not available at all such as direct backup to AWS S3. |
rsedis | 1218 | Rust | Redis re-implemented in Rust |
Redis Proxy
Project Name | Stars(until 2019/04/14) | Lang | Description |
---|---|---|---|
aster | 41 | Rust | Aster is a light, fast and powerful cache proxy written in rust. the same with twemproxy but support multi-threads. Make redis cluster can be used to simple redis client. |
undermoon | 63 | Rust | Aims to provide a Redis cluster solution based on Redis Cluster Protocol supporting multiple tenants and easy scaling. |
twemproxy | 8920 | 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. |
redis-cerberus | 305 | C++ | redis-cerberus是一個Redis集羣代理程序,早期是爲了在使用Redis集羣的同時兼容舊客戶端和應用程序庫而開發的。後續開發過程中加入了基於Redis集羣主從模式的讀寫分離特性。 |
Redsmin proxy deamon | 78 | JavaScript | Access local redis instance from Redsmin https://redsmin.com. Redsmin and Redsmin proxy communicate through a secure connection using the TLS 1.2 protocol so no one will be able to inspect the data looking at the traffic. |
bilitw | 57 | C | bilitw (bilibili twemproxy), which introduce multi process of twemproxy(one master and mutli worker), is order to get full use of the CPU cores. |
Corvus | 640 | C | A fast and lightweight Redis Cluster Proxy for Redis 3.0. |
twemproxy-163 | 34 | C | twemproxy-163 supports redis-server failover by communicating with redis-sentinel. |
twemproxies | 67 | C | twemproxies ( nutcrackers ) is a multithread, 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. |
twemproxy-vip | 43 | C | twemproxy maintained and used at vipshop. |
nredis-proxy | 12 | JAVA | a redis proxy based on netty. arch design. nredis-proxy 是一個以redis 協議爲主的高性能穩定的代理中間件服務,不侵入業務代碼,與業務毫無聯繫,不需要改任何應用代碼,天然支持分佈式部署。 |
predixy | 406 | C++ | A high performance and full features proxy for redis, support redis sentinel and redis cluster. |
onecache | 216 | C++ | OneCache a Redis protocol based distributed cache middleware, as a replacement of Twemproxy or Codis. Unlike twemproxy, OneCache can offer 500,000 or higher QPS for single instance with lower latency. |
redis-twemproxy-agent | 84 | JavaScript | 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. |
r3proxy | 22 | C | written by baidu tieba. a twemproxy with rediscluster support. |
meitu/twemproxy | 124 | C | written by meitu. meitu twemproxy is a multi-process, 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. |
Redis Module
Project Name | Stars | Lang | Description |
---|---|---|---|
rediSQL | 890 | Rust | 於雨推薦:一個Redis module,可在Redis內實現標準SQL全操作,每秒可執行13萬次插入操作 |
redis-storage | 264 | Lua | 把leveldb嵌入到redis實現真正的數據持久存儲 |
Redis Client
Project Name | Stars | Lang | Description |
---|---|---|---|
hiredis-vip | 169(2019/03/24) | C | vip is a C client library for the Redis database, supported redis cluster, fully contained and based on Hiredis |
redispipe | 54(2019/03/24) | Go | High-throughput Redis client for Go with implicit pipelining |
lettuce-core | 2358 | Java | Lettuce is a scalable thread-safe Redis client for synchronous, asynchronous and reactive usage. Multiple threads may share one connection if they avoid blocking and transactional operations such as BLPOP and MULTI/EXEC. Lettuce is built with netty. Supports advanced Redis features such as Sentinel, Cluster, Pipelining, Auto-Reconnect and Redis data models. |
redis-tui | 261(2019/04/28) | Go | A Redis Text-based UI client in CLI |
Redis Data Migration
Project Name | Stars | Lang | Description |
---|---|---|---|
RedisShake | 110 | Go | Redis-shake is a tool for synchronizing data between two redis databases |
redis-port | 110 | C | parse redis rdb file, sync data between redis master and slave |
rdd | 76 | C | redis database dumper, this tool can be used to dump a redis database, work on dump and put dump into redis this tool not use .rdb file! It’s a beta software, use it at your own risk! |
redis-migrate-tool | 560 | C | redis-migrate-tool is a convenient and useful tool for migrating data between redis. It is based on redis replication. In the process of migrating data, the source redis also can provide services for users. |
redis rdb file splitter | In this Chinese blog you will get a script to split Redis rdb db file. | ||
redis-migration | 52 | C | redis-migration is a fast, light-weight migration tool for redis. Just add redis-migration.c to the redis sources. We scale out our redis clusters by this tool. Star: 35(until 2017/08/22). |
Redis Monitor
Project Name | Stars(until 2019/04/14) | Lang | Description |
---|---|---|---|
RedisLive | 2845 | JavaScript | Visualize your redis instances, analyze query patterns and spikes. |
redis-rdb-tools | 3103 | Python | Rdbtools is a parser for Redis’ dump.rdb files. The parser generates events similar to an xml sax parser, and is very efficient memory wise. In addition, rdbtools provides utilities to :Generate a Memory Report of your data across all databases and keys; Convert dump files to JSON; Compare two dump files using standard diff tools. Rdbtools is written in Python, though there are similar projects in other languages. |
redmon | 1530 | Ruby | A web interface for managing redis: cli, admin, and live monitoring. Simple sinatra based dashboard for redis. After seeing the fnordmetric project I was inspired to write this. Some of the ideas there have be carried over here. |
redis-faina | 1407 | Python | At its core, redis-faina uses the Redis MONITOR command, which echoes every single command (with arguments) sent to a Redis instance. It parses these entries, and aggregates stats on the most commonly-hit keys, the queries that took up the most amount of time, and the most common key prefixes as well. |
redis-stat | 1761 | Ruby | redis-stat is a simple Redis monitoring tool written in Ruby.It is based on INFO command of Redis, and thus generally won’t affect the performance of the Redis instance unlike the other monitoring tools based on MONITOR command.redis-stat allows you to monitor Redis instances either with vmstat-like output from the terminal or with the dashboard page served by its embedded web server. |
redispapa | 378 | Python | another redis monitor by using flask, angular, socket.io. we use redis info to monitor the redis usage. PAPA means a father who is monitoring the redis. accoding to the redis doc, it is be recommanded to use info other than monitor. |
redis-monitor | 483 | JavaScript | base RedisLive,monitor multiple redis-server in product enviroment: monitor multiple redis-instance in one page; monitor memory,comand per sec,HitRate,keyspace, master-slave change,expire; sms alert when crash , master-slave stats changed. |
redis-sampler | 219 | Ruby | Small program to understand the composition of your Redis data set. |
redis-audit | 221 | Ruby | This script samples a number of the Redis keys in a database and then groups them with other similar looking keys. It then displays key metrics around those groups of keys to help you spot where efficiencies can be made in the memory usage of your Redis database.Warning: The script cannot be used with AWS Elasticache Redis instances, as the debug command is restricted. |
redis_key_sizes.sh | 125 | shell | A simple script to print the size of all your Redis keys. |
redis-rdb-tools | 3103 | Python | Rdbtools is a parser for Redis’ dump.rdb files. The parser generates events similar to an xml sax parser, and is very efficient memory wise. |
redis-full-check | 76 | Go | Redis-full-check is developed and maintained by NoSQL Team in Alibaba-Cloud Database department. Redis-full-check performs full data verification by comparing the data of the source database and the destination database. |
Redis Admin Web & UI
Project Name | Stars(until 2019/04/16) | Lang | Description |
---|---|---|---|
overlord | 236 | Go | 嗶哩嗶哩基於Go語言編寫的基於memcache和redis&redis-cluster高可用的緩存服務解決方案 |
RedisDesktopManager | 11780 | C++ | Redis Desktop Manager (aka RDM)— is a cross-platform open source Redis DB management tool (i.e. Admin GUI). Redis Desktop Manager developed to replace hundreds of slow and ugly tools for redis. |
redmon | 1530 | Ruby | A web interface for managing redis: cli, admin, and live monitoring. Simple sinatra based dashboard for redis. After seeing the fnordmetric project I was inspired to write this. Some of the ideas there have be carried over here. |
cachecloud | 4079 | Java | A private redis cloud platform developed by Sohu Inc. |
django-redisboard | 207 | Python | Redis monitoring and inspection tool in django admin.its features: Sever statistics in the admin changelist; Key summary in the inspect view; Value introspection with pagination for lists and sorted sets. |
RedisReact | 302 | JavaScript | Redis React is a simple user-friendly UI for browsing data in Redis servers which takes advantages of the complex type conventions built in the ServiceStack.Redis Client to provide a rich, human-friendly UI for navigating related datasets, enabling a fast and fluid browsing experience for your Redis servers. Its related project is ServiceStack.Redis. |
redis-ctl | 127 | Python | Redis Instance Controlling and Distribution Service. |
fastoredis | 270 | FastoRedis is a crossplatform Redis GUI management tool. | |
Redsmin | a developer oriented online administration and monitoring service for Redis and Redis cluster. Redsmin is trusted by more than 10K developers world-wide and manage thousands of Redis servers in real-time. | ||
RedisManager | 10 | Swift | Simple Mac Application to manage Redis Server. |
redisvo | 27 | JavaScript | a web-based redis data visualization tool。 |
medis | 7352 | JavaScript | Medis is a beautiful, easy-to-use Redis management application built on the modern web with Electron, React, and Redux. It’s powered by many awesome Node.js modules, especially ioredis and ssh2. |
Redis Golang Packages
Project Name | Stars(until 2019/04/16) | Lang | Description |
---|---|---|---|
redigo | 66 | Go | Redis Sentinel support for redigo library. |
redigomock | 96 | Go | Easy way to unit test projects using redigo library (Redis client in go). |
redi-go-cluster | 291 | 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. |
go-sentinel | 33 | Go | Redis Sentinel support for redigo library. |
redis-failover | 66 | Go | Automatic redis monitoring and failover based on Go. |
miniredis | 635 | Go | Pure Go Redis test server, used in Go unittests. Sometimes you want to test code which uses Redis, without making it a full-blown integration test. Miniredis implements (parts of) the Redis server, to be used in unittests. |
redeo | 246 | Go | High-performance framework for building redis-protocol compatible TCP servers/services. Optimised for speed! |
libredis | 10 | Go | Libredis is intended to be more than a simple client connection library. It will include Redis specific custom operations, Structures, and capabilities suitable for integrating with any Go code which interacts with Redis ranging from simple CRUD operations to service management. |
go-redis | 41 | Go | go-redis is a Redis client library for the Go programming language. It’s built on the skeleton of gomemcache. |
goatee | 269 | Go | A Redis-backed notification server written in Go. goatee works by listening on a channel via Redis Pub/Sub and then sending the received message to connected clients via WebSockets. Clients may create channels to listen on by using the goatee client library. |
juggler | 65 | Go | Juggler implements highly decoupled, asynchronous RPC and pub-sub over websocket connections using redis as broker. It refers both to a websocket subprotocol and the implementation of a juggler server. The repository also contains implementations of the callee, broker and client roles. This is still experimental. Use at your own risk. Not battle-tested in production environment. API may change. Javascript (and other languages) client not implemented yet. |
broadcaster | 24 | Go | Package broadcaster implements a websocket server for broadcasting Redis pub/sub messages to web clients. |
redisocket.v2 | 1 | Go | Base on gorilla/websocket & garyburd/redigo. |
redis | 5486 | Go | Redis client for Golang. |
Go-Redis | 389 | Go | Google Go Client and Connectors for Redis. |
gosexy/redis | 168 | Go | Redis client for Go that maps the full redis command list into equivalent Go functions. |
Redis Based Lock&Cache
Project Name | Stars(until 2019/04/16) | Lang | Description |
---|---|---|---|
disgear | 77 | Java | Disgear is a distributed cache based on redis, support data segmentation on multiple machines, support HA, write&read separation ,and automatic election support the master node failure. There is also a Chinese translation version of this blog. |
Distributed locks using Redis | How to create reliable locks for a distributed architecture. | ||
Redis lock algorithm and implementation list: Distributed locks with Redis | |||
redsync | 358 | Go | Distributed mutual exclusion lock using Redis for Go. |
Redis Ecosystem
Project Name | Stars(until 2019/04/16) | Lang | Description |
---|---|---|---|
awesome-redis | 330 | A curated list of amazingly awesome redis and redis ecosystem resources. | |
RedisWeekly | A once–weekly e-mail round-up of Redis news, articles, tools and libraries followed by more than 5 000 Redis developers. |
- written by Alex Stocks on 2016/03/22
- add redmon & redispapa & django-redisboard on 2016/04/15
- add Redsmin & RedisManager & RedisWeekly on 2016/04/19
- add twemproxies & fastoredis on 2016/04/20
- add redis cluster(codis & Pika) on 2016/05/12
- add redigo & redi-go-cluster & redigomock & go-sentinel on 2016/06/09
- add ardb & twemproxy-163 on 2016/09/02
- add Pedis & redis-failover & miniredis & redeo & libredis & go-redis on 2016/09/23
- add goatee & juggler & broadcaster & redisocket.v2 on 2016/10/02
- add redis on 2016/10/03
- add Go-Redis & Pushlet on 2016/10/24
- add xredis-server on 2016/11/16
- add x-pipe on 2017/07/01
- add redisvo on 2017/08/10
- add gosexy/redis on 2017/08/12
- add medis on 2017/08/15
- add qdb & redsync && cc on 2017/08/19
- add redis-rdb-tools & redis-migration & vire & twemproxy-vip & hiredis-vip & nredis-proxy on 2017/08/22
- add predixy on 2017/08/27
- add onecache on 2017/09/04
- add swapdb on 2017/09/08
- add redis-twemproxy-agent on 2017/09/22
- add ApsaraCache on 2017/10/14
- add r3proxy on 2018/05/16
- add meitu/twemproxy on 2018/09/07
- add titan on 2018/12/12
- add KeyDB & redis-full-check on 2019/03/13
- add rediSQL & aster on 2019/03/24
- add undermoon on 2019/04/05
- add RedisShake & lettuce-core on 2019/04/06
- add overlord on 2019/04/10
- add redis-tui on 2019/04/28
- add rsedis on 2019/07/01