├── LICENSE └── readme.md /LICENSE: -------------------------------------------------------------------------------- 1 | 2 | Apache License 3 | Version 2.0, January 2004 4 | http://www.apache.org/licenses/ 5 | 6 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 7 | 8 | 1. Definitions. 9 | 10 | "License" shall mean the terms and conditions for use, reproduction, 11 | and distribution as defined by Sections 1 through 9 of this document. 12 | 13 | "Licensor" shall mean the copyright owner or entity authorized by 14 | the copyright owner that is granting the License. 15 | 16 | "Legal Entity" shall mean the union of the acting entity and all 17 | other entities that control, are controlled by, or are under common 18 | control with that entity. For the purposes of this definition, 19 | "control" means (i) the power, direct or indirect, to cause the 20 | direction or management of such entity, whether by contract or 21 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 22 | outstanding shares, or (iii) beneficial ownership of such entity. 23 | 24 | "You" (or "Your") shall mean an individual or Legal Entity 25 | exercising permissions granted by this License. 26 | 27 | "Source" form shall mean the preferred form for making modifications, 28 | including but not limited to software source code, documentation 29 | source, and configuration files. 30 | 31 | "Object" form shall mean any form resulting from mechanical 32 | transformation or translation of a Source form, including but 33 | not limited to compiled object code, generated documentation, 34 | and conversions to other media types. 35 | 36 | "Work" shall mean the work of authorship, whether in Source or 37 | Object form, made available under the License, as indicated by a 38 | copyright notice that is included in or attached to the work 39 | (an example is provided in the Appendix below). 40 | 41 | "Derivative Works" shall mean any work, whether in Source or Object 42 | form, that is based on (or derived from) the Work and for which the 43 | editorial revisions, annotations, elaborations, or other modifications 44 | represent, as a whole, an original work of authorship. For the purposes 45 | of this License, Derivative Works shall not include works that remain 46 | separable from, or merely link (or bind by name) to the interfaces of, 47 | the Work and Derivative Works thereof. 48 | 49 | "Contribution" shall mean any work of authorship, including 50 | the original version of the Work and any modifications or additions 51 | to that Work or Derivative Works thereof, that is intentionally 52 | submitted to Licensor for inclusion in the Work by the copyright owner 53 | or by an individual or Legal Entity authorized to submit on behalf of 54 | the copyright owner. For the purposes of this definition, "submitted" 55 | means any form of electronic, verbal, or written communication sent 56 | to the Licensor or its representatives, including but not limited to 57 | communication on electronic mailing lists, source code control systems, 58 | and issue tracking systems that are managed by, or on behalf of, the 59 | Licensor for the purpose of discussing and improving the Work, but 60 | excluding communication that is conspicuously marked or otherwise 61 | designated in writing by the copyright owner as "Not a Contribution." 62 | 63 | "Contributor" shall mean Licensor and any individual or Legal Entity 64 | on behalf of whom a Contribution has been received by Licensor and 65 | subsequently incorporated within the Work. 66 | 67 | 2. Grant of Copyright License. Subject to the terms and conditions of 68 | this License, each Contributor hereby grants to You a perpetual, 69 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 70 | copyright license to reproduce, prepare Derivative Works of, 71 | publicly display, publicly perform, sublicense, and distribute the 72 | Work and such Derivative Works in Source or Object form. 73 | 74 | 3. Grant of Patent License. Subject to the terms and conditions of 75 | this License, each Contributor hereby grants to You a perpetual, 76 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 77 | (except as stated in this section) patent license to make, have made, 78 | use, offer to sell, sell, import, and otherwise transfer the Work, 79 | where such license applies only to those patent claims licensable 80 | by such Contributor that are necessarily infringed by their 81 | Contribution(s) alone or by combination of their Contribution(s) 82 | with the Work to which such Contribution(s) was submitted. If You 83 | institute patent litigation against any entity (including a 84 | cross-claim or counterclaim in a lawsuit) alleging that the Work 85 | or a Contribution incorporated within the Work constitutes direct 86 | or contributory patent infringement, then any patent licenses 87 | granted to You under this License for that Work shall terminate 88 | as of the date such litigation is filed. 89 | 90 | 4. Redistribution. You may reproduce and distribute copies of the 91 | Work or Derivative Works thereof in any medium, with or without 92 | modifications, and in Source or Object form, provided that You 93 | meet the following conditions: 94 | 95 | (a) You must give any other recipients of the Work or 96 | Derivative Works a copy of this License; and 97 | 98 | (b) You must cause any modified files to carry prominent notices 99 | stating that You changed the files; and 100 | 101 | (c) You must retain, in the Source form of any Derivative Works 102 | that You distribute, all copyright, patent, trademark, and 103 | attribution notices from the Source form of the Work, 104 | excluding those notices that do not pertain to any part of 105 | the Derivative Works; and 106 | 107 | (d) If the Work includes a "NOTICE" text file as part of its 108 | distribution, then any Derivative Works that You distribute must 109 | include a readable copy of the attribution notices contained 110 | within such NOTICE file, excluding those notices that do not 111 | pertain to any part of the Derivative Works, in at least one 112 | of the following places: within a NOTICE text file distributed 113 | as part of the Derivative Works; within the Source form or 114 | documentation, if provided along with the Derivative Works; or, 115 | within a display generated by the Derivative Works, if and 116 | wherever such third-party notices normally appear. The contents 117 | of the NOTICE file are for informational purposes only and 118 | do not modify the License. You may add Your own attribution 119 | notices within Derivative Works that You distribute, alongside 120 | or as an addendum to the NOTICE text from the Work, provided 121 | that such additional attribution notices cannot be construed 122 | as modifying the License. 123 | 124 | You may add Your own copyright statement to Your modifications and 125 | may provide additional or different license terms and conditions 126 | for use, reproduction, or distribution of Your modifications, or 127 | for any such Derivative Works as a whole, provided Your use, 128 | reproduction, and distribution of the Work otherwise complies with 129 | the conditions stated in this License. 130 | 131 | 5. Submission of Contributions. Unless You explicitly state otherwise, 132 | any Contribution intentionally submitted for inclusion in the Work 133 | by You to the Licensor shall be under the terms and conditions of 134 | this License, without any additional terms or conditions. 135 | Notwithstanding the above, nothing herein shall supersede or modify 136 | the terms of any separate license agreement you may have executed 137 | with Licensor regarding such Contributions. 138 | 139 | 6. Trademarks. This License does not grant permission to use the trade 140 | names, trademarks, service marks, or product names of the Licensor, 141 | except as required for reasonable and customary use in describing the 142 | origin of the Work and reproducing the content of the NOTICE file. 143 | 144 | 7. Disclaimer of Warranty. Unless required by applicable law or 145 | agreed to in writing, Licensor provides the Work (and each 146 | Contributor provides its Contributions) on an "AS IS" BASIS, 147 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 148 | implied, including, without limitation, any warranties or conditions 149 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 150 | PARTICULAR PURPOSE. You are solely responsible for determining the 151 | appropriateness of using or redistributing the Work and assume any 152 | risks associated with Your exercise of permissions under this License. 153 | 154 | 8. Limitation of Liability. In no event and under no legal theory, 155 | whether in tort (including negligence), contract, or otherwise, 156 | unless required by applicable law (such as deliberate and grossly 157 | negligent acts) or agreed to in writing, shall any Contributor be 158 | liable to You for damages, including any direct, indirect, special, 159 | incidental, or consequential damages of any character arising as a 160 | result of this License or out of the use or inability to use the 161 | Work (including but not limited to damages for loss of goodwill, 162 | work stoppage, computer failure or malfunction, or any and all 163 | other commercial damages or losses), even if such Contributor 164 | has been advised of the possibility of such damages. 165 | 166 | 9. Accepting Warranty or Additional Liability. While redistributing 167 | the Work or Derivative Works thereof, You may choose to offer, 168 | and charge a fee for, acceptance of support, warranty, indemnity, 169 | or other liability obligations and/or rights consistent with this 170 | License. However, in accepting such obligations, You may act only 171 | on Your own behalf and on Your sole responsibility, not on behalf 172 | of any other Contributor, and only if You agree to indemnify, 173 | defend, and hold each Contributor harmless for any liability 174 | incurred by, or claims asserted against, such Contributor by reason 175 | of your accepting any such warranty or additional liability. 176 | 177 | END OF TERMS AND CONDITIONS 178 | 179 | Copyright 2016 ~ 2017 Alex Stocks. 180 | 181 | Licensed under the Apache License, Version 2.0 (the "License"); 182 | you may not use this file except in compliance with the License. 183 | You may obtain a copy of the License at 184 | 185 | http://www.apache.org/licenses/LICENSE-2.0 186 | 187 | Unless required by applicable law or agreed to in writing, software 188 | distributed under the License is distributed on an "AS IS" BASIS, 189 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 190 | See the License for the specific language governing permissions and 191 | limitations under the License. 192 | -------------------------------------------------------------------------------- /readme.md: -------------------------------------------------------------------------------- 1 | # Redis tool list # 2 | 3 | Here is a Redis tool list. I hope you will find one or two of them that you'd like to try out. 4 | 5 | 6 | Table of Contents 7 | ================= 8 | * [Cloud Native](#cloud-native) 9 | * [Redis Cluster](#redis-cluster) 10 | * [Redis Variety](#redis-variety) 11 | * [Redis Proxy](#redis-proxy) 12 | * [Redis Module](#redis-module) 13 | * [Redis Client](#redis-client) 14 | * [Redis Data Migration](#redis-data-migration) 15 | * [Redis Monitor](#redis-monitor) 16 | * [Redis Admin Web & UI](#redis-admin-web--ui) 17 | * [Redis Golang Packages](#redis-golang-packages) 18 | * [Redis Based Lock&Cache](#redis-based-lockcache) 19 | * [Redis Ecosystem](#redis-ecosystem) 20 | 21 | --- 22 | ## Cloud Native 23 | 24 | | Project Name | Stars | Lang | Description | 25 | | :----------- | :---- | :--- | :---------- | 26 | | [redis-operator](https://github.com/OT-CONTAINER-KIT/redis-operator) | 508(2023/07/13) | Go | A golang based redis operator that will make/oversee Redis standalone/cluster/replication/sentinel mode setup on top of the Kubernetes. | 27 | 28 | --- 29 | ## Redis Cluster 30 | 31 | | Project Name | Stars | Lang | Description | 32 | | :----------- | :---- | :--- | :---------- | 33 | | [Codis](https://github.com/CodisLabs/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. | 34 | | [x-pipe](https://github.com/ctripcorp/x-pipe) | 791 | Java | Redis 多数据中心集群,一是为了提升可用性,解决数据中心 DR(Disaster Recovery) 问题,二是提升访问性能,每个数据中心可以读取当前数据中心的数据,无需跨机房读数据。| 35 | | [cc](https://github.com/ksarch-saas/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). | 36 | | [godis](https://github.com/HDT3213/godis) | 629 | Go | Godis is a golang implementation of Redis Server, which intents to provide an example of writing a high concurrent middleware using golang. | 37 | | [redis_builder](https://github.com/acl-dev/acl/tree/master/app/redis_tools/redis_builder) | 2700(until 2024/02/22) | C++ | A redis tool for redis cluster, which can help to build a new redis cluster, add one new redis node to the existing one or cluster, show the information of the redis cluster about nodes and slots. | 38 | | [garnet](https://github.com/microsoft/garnet) | 2600(until 2024/03/21) | C# | Garnet is a remote cache-store from Microsoft Research that offers strong performance (throughput and latency), scalability, storage, recovery, cluster sharding, key migration, and replication features. Garnet can work with existing Redis clients. | 39 | 40 | --- 41 | ## Redis Variety 42 | 43 | | Project Name | Stars(until 2019/04/14) | Lang | Description | 44 | | :----------- | :---- | :--- | :---------- | 45 | | [Pika](https://github.com/Qihoo360/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. | 46 | | [webdis](https://github.com/nicolasff/webdis) | 2099 | C | A very simple web server providing an HTTP interface to Redis. It uses hiredis, jansson, libevent, and [http-parser](https://github.com/nodejs/http-parser) | 47 | | [ardb](https://github.com/yinqiwen/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. | 48 | | [Pedis](https://github.com/fastio/pedis) | 1027 | C++ | NoSQL data store using the SEASTAR framework, compatible with REDIS. | 49 | | [Qedis](https://github.com/loveyacper/Qedis) | 54 | C++ | A C++11 implementation of distributed redis server, use Leveldb for persist storage.(including cluster) | 50 | | [AliRedis](http://blog.sina.com.cn/s/blog_e59371cc0101br74.html) | | 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. | 51 | | [Pushlet](https://github.com/wjw465150/Pushlet/tree/branch-redis) | 139 | JavaScript | Pushlet 是一个开源的 Comet 框架,Pushlet使用了观察者模型:客户端发送请求,订阅感兴趣的事件;服务器端为每个客户端分配一个会话 ID 作为标记,事件源会把新产生的事件以多播的方式发送到订阅者的事件队列里。 | 52 | | [xredis-server](https://github.com/0xsky/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. | 53 | | [qdb](https://github.com/reborndb/qdb) | 327 | Go | A fast, high availability, fully Redis compatible store engine. | 54 | | [vire](https://github.com/vipshop/vire) | 167 | C | vire (pronounced "vip-redis") is a multithread redis(based on redis-3.2.0) maintains in vipshop. | 55 | | [swapdb](https://github.com/JingchengLi/swapdb) | 269 | C | A redis compatiable storage which support data exchange between memory and disk. | 56 | | [ApsaraCache](https://github.com/alibaba/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. | 57 | | [titan](https://github.com/distributedio/titan) | 658 | Go | A distributed implementation of Redis compatible layer based on [TiKV](https://github.com/tikv/tikv/). | 58 | | [KeyDB](https://github.com/JohnSully/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. | 59 | | [rsedis](https://github.com/seppo0010/rsedis) | 1218 | Rust | Redis re-implemented in Rust | 60 | | [redis-windows](https://github.com/ServiceStack/redis-windows) | 2400 | C | Vagrant redis configuration and the binary releases of MS Open Tech redis port of windows | 61 | | [Tendis](https://github.com/tencent/Tendis) | 717 | C | a high-performance distributed storage system fully compatible with the Redis protocol. Using RocksDB as storage engine. All data is stored in RocksDB in a specific format, supporting PB-level storage capacity. | 62 | | [dragonfly](https://github.com/dragonflydb/dragonfly) | 18900 | C++ | An in-memory data store built for modern application workloads. Fully compatible with Redis and Memcached APIs, Dragonfly requires no code changes to adopt. Compared to legacy in-memory datastores, Dragonfly delivers 25X more throughput, higher cache hit rates with lower tail latency, and effortless vertical scalability. | 63 | | [redka](https://github.com/nalgeon/redka) | 410(until 2024/04/15) | Go | Redis re-implemented with SQLite | 64 | 65 | --- 66 | ## Redis Proxy 67 | 68 | | Project Name | Stars(until 2019/04/14) | Lang | Description | 69 | | :----------- | :---- | :--- | :---------- | 70 | | [aster](https://github.com/wayslog/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. | 71 | | [undermoon](https://github.com/doyoubi/undermoon) | 63 | Rust | Aims to provide a Redis cluster solution based on Redis Cluster Protocol supporting multiple tenants and easy scaling. | 72 | | [twemproxy](https://github.com/twitter/twemproxy) | 8920 | C | twemproxy (pronounced "two-em-proxy"), aka nutcracker is a fast and lightweight proxy for [memcached](http://www.memcached.org/) and [redis](http://redis.io/) 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.| 73 | | [redis-cerberus](https://github.com/projecteru/redis-cerberus) | 305 | C++ | redis-cerberus是一个Redis集群代理程序,早期是为了在使用Redis集群的同时兼容旧客户端和应用程序库而开发的。后续开发过程中加入了基于Redis集群主从模式的读写分离特性。| 74 | | [Redsmin proxy deamon](https://github.com/Redsmin/proxy) | 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. | 75 | | [bilitw](https://github.com/anewhuahua/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. | 76 | | [Corvus](https://github.com/eleme/corvus) | 640 | C | A fast and lightweight Redis Cluster Proxy for Redis 3.0. | 77 | | [twemproxy-163](https://github.com/helifu/twemproxy-163) | 34 | C | twemproxy-163 supports redis-server failover by communicating with redis-sentinel. | 78 | | [twemproxies](https://github.com/vipshop/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. | 79 | | [twemproxy-vip](https://github.com/vipshop/twemproxy-vip) | 43 | C | twemproxy maintained and used at vipshop. | 80 | | [nredis-proxy](https://github.com/wxmclub/nredis-proxy) | 12 | JAVA | a redis proxy based on netty. arch design. nredis-proxy 是一个以redis 协议为主的高性能稳定的代理中间件服务,不侵入业务代码,与业务毫无联系,不需要改任何应用代码,天然支持分布式部署。 | 81 | | [predixy](https://github.com/joyieldInc/predixy) | 406 | C++ | A high performance and full features proxy for redis, support redis sentinel and redis cluster. | 82 | | [onecache](https://github.com/onexsoft/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. | 83 | | [redis-twemproxy-agent](https://github.com/Stono/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. | 84 | | [r3proxy](https://github.com/ksarch-saas/r3proxy) | 22 | C | written by baidu tieba. a twemproxy with rediscluster support. | 85 | | [meitu/twemproxy](https://github.com/meitu/twemproxy) | 124 | C | written by meitu. [meitu](https://github.com/meitu/) twemproxy is a multi-process, fast and lightweight proxy for [memcached](www.memcached.com) and [redis](redis.io) 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. | 86 | | [clia/rcproxy](https://github.com/clia/rcproxy) | 31(until 2023/08/17) | Rust | RCProxy is a lightweight, fast but powerful Redis Cluster Proxy written in Rust | 87 | | [camellia](https://github.com/netease-im/camellia) | 493(until 2024/02/19) | Java | Camellia provide easy-to-use server toolkits, such as: redis proxy、delay queue、id gen、hot key and more | 88 | 89 | 90 | --- 91 | ## Redis Module 92 | 93 | | Project Name | Stars | Lang | Description | 94 | | :----------- | :---- | :--- | :---------- | 95 | | [rediSQL](https://github.com/RedBeardLab/rediSQL) | 890 | Rust | Redis module that provides a completely functional SQL database | 96 | | [redis-storage](https://github.com/qiye/redis-storage) | 264 | Lua | 把leveldb嵌入到redis实现真正的数据持久存储 | 97 | | [RedisJSON](https://github.com/RedisJSON/RedisJSON) | 867 | C | a Redis module that implements ECMA-404 The JSON Data Interchange Standard as a native data type. It allows storing, updating and fetching JSON values from Redis keys (documents). | 98 | | [RedisTimeSeries](https://github.com/RedisTimeSeries/RedisTimeSeries) | 208 | C | a Redis Module adding a Time Series data structure to Redis | 99 | 100 | --- 101 | ## Redis Client 102 | 103 | | Project Name | Stars | Lang | Description | 104 | | :----------- | :---- | :--- | :---------- | 105 | | [hiredis-vip](https://github.com/vipshop/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 | 106 | | [redispipe](https://github.com/joomcode/redispipe) | 54(2019/03/24) | Go | High-throughput Redis client for Go with implicit pipelining | 107 | | [lettuce-core](https://github.com/lettuce-io/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. | 108 | | [redis-tui](https://github.com/mylxsw/redis-tui) | 261(2019/04/28) | Go | A Redis Text-based UI client in CLI | 109 | | [hiredis-py](https://github.com/redis/hiredis-py) | 336(2019/10/30) | Python | Python extension that wraps protocol parsing code in hiredis. It primarily speeds up parsing of multi bulk replies. | 110 | | [redis-rs](https://github.com/mitsuhiko/redis-rs) | 2000(2021/05/29) | Rust | a high level redis library for Rust. It provides convenient access to all Redis functionality through a very flexible but low-level API. It uses a customizable type conversion trait so that any operation can return results in just the type you are expecting. This makes for a very pleasant development experience. | 111 | | [go-ycsb](https://github.com/pingcap/go-ycsb) | 509(2023/07/14) | Go | go-ycsb is a Go port of YCSB. It fully supports all YCSB generators and the Core workload so we can do the basic CRUD benchmarks with Go. | 112 | | [eredis](https://github.com/Nordix/eredis) | 30(2023/07/14) | Erlang | Erlang Redis client. This is an actively maintained fork used and sponsored by Ericsson via Nordix Foundation. | 113 | | [aedis](https://github.com/mzimbres/aedis) | 145(2023/07/14) | C++ | An async redis client designed for performance and scalability | 114 | | [iredis](https://github.com/laixintao/iredis) | 2400(until 2023/02/20) | Python | Interactive Redis: A Terminal Client for Redis with AutoCompletion and Syntax Highlighting | 115 | | [Acl redis Client](https://github.com/acl-dev/acl/tree/master/lib_acl_cpp/samples/redis) | 2700(until 2024/02/22) | C++ | The redis module in Acl is a powerful redis client library with higth performance, rich interface and easy to use. There are more than 13 C++ classes and over 150 commands in Acl redis, including STRING, HASH, LIST, SET, ZSET, HyperLogLog, PUBSUB, STREAM, TRANSACTION, SCRIPT, CONNECTION, SERVER, etc. User using Acl redis doesn't need care about network comminucation, redis protocol, hash slots caching, etc., just like using C++ STL standard interface. | 116 | 117 | 118 | --- 119 | ## Redis Data Migration 120 | 121 | | Project Name | Stars | Lang | Description | 122 | | :----------- | :---- | :--- | :---------- | 123 | | [RedisShake](https://github.com/alibaba/RedisShake) | 110 | Go | Redis-shake is a tool for synchronizing data between two redis databases | 124 | | [redis-port](https://github.com/CodisLabs/redis-port) | 110 | C | parse redis rdb file, sync data between redis master and slave | 125 | | [rdd](https://github.com/r043v/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! | 126 | | [redis-migrate-tool](https://github.com/vipshop/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. | 127 | | [redis rdb file splitter](http://blog.nosqlfan.com/html/4092.html) | | | In this Chinese blog you will get a script to split Redis rdb db file. | 128 | | [redis-migration](https://github.com/helifu/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). | 129 | | [Bifrost](https://github.com/brokercap/Bifrost) | 1700(until 20231203) | Go | transfer data from MySQL,MariaDB,kafka to Redis,MongoDB,ClickHouse,StarRocks,Doris,Kafka | 130 | | [redissyncer-server](https://github.com/TraceNature/redissyncer-server) | 637(until 20241015) | Java | redissyncer is a redis synchronization tool, used in redis single instance and cluster synchronization | 131 | 132 | --- 133 | ## Redis Monitor 134 | 135 | | Project Name | Stars(until 2019/04/14) | Lang | Description | 136 | | :----------- | :---- | :--- | :---------- | 137 | | [RedisLive](https://github.com/nkrode/RedisLive) | 2845 | JavaScript | Visualize your redis instances, analyze query patterns and spikes. | 138 | | [redis-rdb-tools](https://github.com/sripathikrishnan/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. | 139 | | [redmon](https://github.com/steelThread/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. | 140 | | [redis-faina](https://github.com/facebookarchive/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. | 141 | | [redis-stat](https://github.com/junegunn/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. | 142 | | [redispapa](https://github.com/no13bus/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. | 143 | | [redis-monitor](https://github.com/LittlePeng/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. | 144 | | [redis-sampler](https://github.com/antirez/redis-sampler) | 219 | Ruby | Small program to understand the composition of your Redis data set. | 145 | | [redis-audit](https://github.com/snmaynard/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. | 146 | | [redis_key_sizes.sh](https://gist.github.com/epicserve/5699837) | 125 | shell | A simple script to print the size of all your Redis keys. | 147 | | [redis-rdb-tools](https://github.com/sripathikrishnan/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. | 148 | | [redis-full-check](https://github.com/alibaba/RedisFullCheck) | 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. | 149 | | [redis-inventory](https://github.com/obukhov/redis-inventory) | 58 | Go | Redis inventory is a tool to analyse Redis memory usage by key patterns and displaying it hierarchically. The name is inspired by "Disk Inventory X" tool doing similar analysis for disk usage. | 150 | | [rdr](https://github.com/xueqiu/rdr) | 1000 | Go | a tool to parse redis rdbfile. Comparing to redis-rdb-tools, RDR is implemented by golang, much faster (5GB rdbfile takes about 2mins on my PC). | 151 | 152 | --- 153 | ## Redis Admin Web & UI 154 | 155 | 156 | | Project Name | Stars(until 2019/04/16) | Lang | Description | 157 | | :----------- | :---- | :--- | :---------- | 158 | | [overlord](https://github.com/bilibili/overlord) | 236 | Go | 哔哩哔哩基于Go语言编写的基于memcache和redis&redis-cluster高可用的缓存服务解决方案 | 159 | | [RedisDesktopManager](https://github.com/uglide/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. | 160 | | [redmon](https://github.com/steelThread/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. | 161 | | [cachecloud](https://github.com/sohutv/cachecloud) | 4079 | Java | A private redis cloud platform developed by Sohu Inc. | 162 | | [django-redisboard](https://github.com/ionelmc/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. | 163 | | [RedisReact](https://github.com/ServiceStackApps/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. | 164 | | [redis-ctl](https://github.com/projecteru/redis-ctl) | 127 | Python | Redis Instance Controlling and Distribution Service. | 165 | | [fastoredis](https://github.com/fastogt/fastoredis) | 270 | | FastoRedis is a crossplatform Redis GUI management tool. | 166 | | [Redsmin](https://www.redsmin.com/) | || 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. | 167 | | [RedisManager](https://github.com/giuseppesalvo/RedisManager) | 10 | Swift | Simple Mac Application to manage Redis Server. | 168 | | [redisvo](https://github.com/taomin597715379/redisvo) | 27 | JavaScript | a web-based redis data visualization tool。| 169 | | [medis](https://github.com/luin/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. | 170 | | [AnotherRedisDesktopManager](https://github.com/qishibo/AnotherRedisDesktopManager) | 18000 | JavaScript | A faster, better and more stable redis desktop manager [GUI client], compatible with Linux, Windows, Mac. What's more, it won't crash when loading massive keys. | 171 | | [RedisInsight](https://github.com/RedisInsight/RedisInsight) | 3300(2023/07/14) | Js | RedisInsight is a visual tool that provides capabilities to design, develop and optimize your Redis application. Query, analyse and interact with your Redis data. | 172 | | [tiny-rdm](https://github.com/tiny-craft/tiny-rdm) | 3100(until 2024/01/24) | Js | a modern lightweight cross-platform Redis desktop manager available for Mac, Windows, and Linux | 173 | 174 | --- 175 | ## Redis Golang Packages 176 | 177 | | Project Name | Stars(until 2019/04/16) | Lang | Description | 178 | | :----------- | :---- | :--- | :---------- | 179 | | [redigo](https://github.com/garyburd/redigo/) | 66 | Go | Redis Sentinel support for redigo library. | 180 | | [redigomock](https://github.com/rafaeljusto/redigomock) | 96 | Go | Easy way to unit test projects using redigo library (Redis client in go). | 181 | | [redi-go-cluster](https://github.com/chasex/redis-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. | 182 | | [go-sentinel](https://github.com/FZambia/go-sentinel) | 33 | Go | Redis Sentinel support for redigo library. | 183 | | [redis-failover](https://github.com/FZambia/go-sentinel) | 66 | Go | Automatic redis monitoring and failover based on Go. | 184 | | [miniredis](https://github.com/alicebob/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. | 185 | | [redeo](https://github.com/bsm/redeo) | 246 | Go | High-performance framework for building redis-protocol compatible TCP servers/services. Optimised for speed! | 186 | | [libredis](https://github.com/therealbill/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. | 187 | | [go-redis](https://github.com/fiorix/go-redis) | 41 | Go | go-redis is a Redis client library for the Go programming language. It's built on the skeleton of gomemcache. | 188 | | [goatee](https://github.com/johnernaut/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. | 189 | | [juggler](https://github.com/mna/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. | 190 | | [broadcaster](https://github.com/rubenv/broadcaster) | 24 | Go | Package broadcaster implements a websocket server for broadcasting Redis pub/sub messages to web clients. | 191 | | [redisocket.v2](https://github.com/syhlion/redisocket.v2) | 1 | Go | Base on gorilla/websocket & garyburd/redigo. | 192 | | [redis](https://github.com/go-redis/redis) | 5486 | Go | Redis client for Golang. | 193 | | [Go-Redis](https://github.com/alphazero/Go-Redis) | 389 | Go | Google Go Client and Connectors for Redis. | 194 | | [gosexy/redis](https://github.com/gosexy/redis) | 168 | Go | Redis client for Go that maps the full redis command list into equivalent Go functions. | 195 | | [go-resp3](https://github.com/stfnmllr/go-resp3) | 11 | Go | Google Go Redis RESP3 client | 196 | | [rueidis](https://github.com/rueian/rueidis) | 447(2022/08/07) | Go | A Fast Golang Redis RESP3 client that supports Client Side Caching, Auto Pipelining, Generics OM, RedisJSON, RedisBloom, RediSearch, RedisAI, RedisGears, etc. | 197 | | [redis_rate](https://github.com/go-redis/redis_rate) | 620(2023/07/14) | Go | This package is based on rwz/redis-gcra and implements GCRA (aka leaky bucket) for rate limiting based on Redis. | 198 | 199 | --- 200 | ## Redis Based Lock&Cache 201 | | Project Name | Stars(until 2019/04/16) | Lang | Description | 202 | | :----------- | :---- | :--- | :---------- | 203 | | [disgear](https://github.com/yangbutao/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](http://www.rigongyizu.com/distributed-locks-using-redis/) of this blog. | 204 | | [Distributed locks using Redis](https://engineering.gosquared.com/distributed-locks-using-redis) | | | How to create reliable locks for a distributed architecture. | 205 | | [Redis lock algorithm and implementation list: Distributed locks with Redis](https://redis.io/topics/distlock) | | | | 206 | | [redsync](https://github.com/go-redsync/redsync) | 358 | Go | Distributed mutual exclusion lock using Redis for Go. | 207 | | [redislock](https://github.com/bsm/redislock) | 1600 | Go | Simplified distributed locking implementation using Redis | 208 | 209 | --- 210 | ## Redis Ecosystem 211 | | Project Name | Stars(until 2019/04/16) | Lang | Description | 212 | | :----------- | :---- | :--- | :---------- | 213 | | [awesome-redis](https://github.com/zhemingwang/awesome-redis) | 330 | | A curated list of amazingly awesome redis and redis ecosystem resources. | 214 | | [RedisWeekly](http://redisweekly.com) | | | A once–weekly e-mail round-up of Redis news, articles, tools and libraries followed by more than 5 000 Redis developers. | 215 | 216 | --- 217 | * written by Alex Stocks on 2016/03/22 218 | 219 | >- add redmon & redispapa & django-redisboard on 2016/04/15 220 | >- add Redsmin & RedisManager & RedisWeekly on 2016/04/19 221 | >- add twemproxies & fastoredis on 2016/04/20 222 | >- add redis cluster(codis & Pika) on 2016/05/12 223 | >- add redigo & redi-go-cluster & redigomock & go-sentinel on 2016/06/09 224 | >- add ardb & twemproxy-163 on 2016/09/02 225 | >- add Pedis & redis-failover & miniredis & redeo & libredis & go-redis on 2016/09/23 226 | >- add goatee & juggler & broadcaster & redisocket.v2 on 2016/10/02 227 | >- add redis on 2016/10/03 228 | >- add Go-Redis & Pushlet on 2016/10/24 229 | >- add xredis-server on 2016/11/16 230 | >- add x-pipe on 2017/07/01 231 | >- add redisvo on 2017/08/10 232 | >- add gosexy/redis on 2017/08/12 233 | >- add medis on 2017/08/15 234 | >- add qdb & redsync && cc on 2017/08/19 235 | >- add redis-rdb-tools & redis-migration & vire & twemproxy-vip & hiredis-vip & nredis-proxy on 2017/08/22 236 | >- add predixy on 2017/08/27 237 | >- add onecache on 2017/09/04 238 | >- add swapdb on 2017/09/08 239 | >- add redis-twemproxy-agent on 2017/09/22 240 | >- add ApsaraCache on 2017/10/14 241 | >- add r3proxy on 2018/05/16 242 | >- add [meitu/twemproxy](https://github.com/meitu/twemproxy) on 2018/09/07 243 | >- add [titan](https://github.com/meitu/titan) on 2018/12/12 244 | >- add [KeyDB](https://github.com/JohnSully/KeyDB) & [redis-full-check](https://github.com/aliyun/redis-full-check) on 2019/03/13 245 | >- add [rediSQL](https://github.com/RedBeardLab/rediSQL) & [aster](https://github.com/wayslog/aster) on 2019/03/24 246 | >- add [undermoon](https://github.com/doyoubi/undermoon) on 2019/04/05 247 | >- add [RedisShake](https://github.com/alibaba/RedisShake) & [lettuce-core](https://github.com/lettuce-io/lettuce-core) on 2019/04/06 248 | >- add [overlord](https://github.com/bilibili/overlord) on 2019/04/10 249 | >- add [redis-tui](https://github.com/mylxsw/redis-tui) on 2019/04/28 250 | >- add [rsedis](https://github.com/seppo0010/rsedis) on 2019/07/01 251 | >- add [RedisJSON](https://github.com/RedisJSON/RedisJSON) on 2019/09/05 252 | >- add [RedisTimeSeries](https://github.com/RedisTimeSeries/RedisTimeSeries) on 2019/09/11 253 | >- add [hiredis-py](https://github.com/redis/hiredis-py) on 2019/09/17 254 | >- add [go-resp3](https://github.com/stfnmllr/go-resp3) on 2020/07/22 255 | >- add [redis-windows](https://github.com/ServiceStack/redis-windows) on 2020/08/20 256 | >- add [Tendis](https://github.com/tencent/Tendis) on 2020/12/24 257 | >- add [redis-rs](https://github.com/mitsuhiko/redis-rs) on 2021/05/29 258 | >- add [godis](https://github.com/HDT3213/godis) on 2021/06/22 259 | >- add [redis-inventory](https://github.com/obukhov/redis-inventory) on 2021/09/16 260 | >- add [AnotherRedisDesktopManager](https://github.com/qishibo/AnotherRedisDesktopManager) on 2022/01/05 261 | >- add [rueidis](https://github.com/rueian/rueidis) on 2022/08/06 262 | >- add [rdr](https://github.com/xueqiu/rdr) & [dragonfly](https://github.com/dragonflydb/dragonfly) on 2023/04/16 263 | >- add [redis-operator](https://github.com/OT-CONTAINER-KIT/redis-operator) & [go-ycsb](https://github.com/pingcap/go-ycsb) & [eredis](https://github.com/Nordix/eredis) & [aedis](https://github.com/mzimbres/aedis) & [RedisInsight](https://github.com/RedisInsight/RedisInsight) & [redis_rate](https://github.com/go-redis/redis_rate) on 2023/07/14 264 | >- add [clia/rcproxy](https://github.com/clia/rcproxy) & [rsedis](https://github.com/seppo0010/rsedis) on 2023/08/17 265 | >- add [Bifrost](https://github.com/brokercap/Bifrost) on 2023/12-03 266 | >- add [tiny-rdm](https://github.com/tiny-craft/tiny-rdm) on 2024/01/24 267 | >- add [camellia](https://github.com/netease-im/camellia) on 2024/02/19 268 | >- add [rsedis](https://github.com/seppo0010/rsedis) on 2024/02/20 269 | >- add [redis_builder](https://github.com/acl-dev/acl/tree/master/app/redis_tools/redis_builder) and [Acl redis Client](https://github.com/acl-dev/acl/tree/master/lib_acl_cpp/samples/redis) on 2024/02/22 270 | >- add [garnet](https://github.com/microsoft/garnet) on 2024/03/21 271 | >- add [redka](https://github.com/nalgeon/redka) on 2024/04/15 272 | >- add [redissyncer-server](https://github.com/TraceNature/redissyncer-server) on 2024/10/15 273 | >- add [redislock](https://github.com/bsm/redislock) on 2025/04/29 274 | 275 | --------------------------------------------------------------------------------