All Projects → IronsDu → DBProxy

IronsDu / DBProxy

Licence: MIT license
redis proxy、ssdb proxy(使用脚本控制sharding)

Programming Languages

C++
36643 projects - #6 most used programming language
c
50402 projects - #5 most used programming language
CMake
9771 projects
lua
6591 projects

Projects that are alternatives of or similar to DBProxy

Csredis
.NET Core or .NET Framework 4.0+ client for Redis and Redis Sentinel (2.8) and Cluster. Includes both synchronous and asynchronous clients.
Stars: ✭ 1,714 (+171300%)
Mutual labels:  redis-cluster
Codis
Proxy based Redis cluster solution supporting pipeline and scaling dynamically
Stars: ✭ 12,285 (+1228400%)
Mutual labels:  redis-cluster
Redis Manager
Redis 一站式管理平台,支持集群的监控、安装、管理、告警以及基本的数据操作
Stars: ✭ 2,646 (+264500%)
Mutual labels:  redis-cluster
E3 Springboot
SpringBoot+Docker重构宜立方商城
Stars: ✭ 139 (+13800%)
Mutual labels:  redis-cluster
Camellia
camellia framework by netease-im. provider: 1) redis-client; 2) redis-proxy(redis-sentinel/redis-cluster); 3) hbase-client; 4) others
Stars: ✭ 146 (+14500%)
Mutual labels:  redis-cluster
Undermoon
Mordern Redis Cluster solution for easy operation.
Stars: ✭ 166 (+16500%)
Mutual labels:  redis-cluster
Php Redis Client
RedisClient is a fast, fully-functional and user-friendly client for Redis, optimized for performance. RedisClient supports the latest versions of Redis starting from 2.6 to 6.0
Stars: ✭ 112 (+11100%)
Mutual labels:  redis-cluster
docker-redis-haproxy-cluster
A Redis Replication Cluster accessible through HAProxy running across a Docker Composed-Swarm with Supervisor and Sentinel
Stars: ✭ 44 (+4300%)
Mutual labels:  redis-cluster
Redis Cluster Operator
Redis Cluster Operator creates and manages Redis Clusters atop Kubernetes.
Stars: ✭ 150 (+14900%)
Mutual labels:  redis-cluster
Blog
MyBlog
Stars: ✭ 197 (+19600%)
Mutual labels:  redis-cluster
Redis exporter
Prometheus Exporter for Redis Metrics. Supports Redis 2.x, 3.x, 4.x, 5.x and 6.x
Stars: ✭ 2,092 (+209100%)
Mutual labels:  redis-cluster
Redis
Type-safe Redis client for Golang
Stars: ✭ 13,117 (+1311600%)
Mutual labels:  redis-cluster
Redisc
A Go redis cluster client built on top of redigo.
Stars: ✭ 183 (+18200%)
Mutual labels:  redis-cluster
Overlord
Overlord是哔哩哔哩基于Go语言编写的memcache和redis&cluster的代理及集群管理功能,致力于提供自动化高可用的缓存服务解决方案。
Stars: ✭ 1,884 (+188300%)
Mutual labels:  redis-cluster
Cachingframework.redis
Distributed caching based on StackExchange.Redis and Redis. Includes support for tagging and is cluster-compatible.
Stars: ✭ 209 (+20800%)
Mutual labels:  redis-cluster
Redis Game Transaction
在大型游戏中经常使用分布式,分布式中因为游戏逻辑会经常游戏事务,借助redis特性我们可以实现分布式锁和分布式事务。很多redis集群不支持redis的事务特性。 这个框架用来解决分布式服务器下redis集群事务失效的情况下,基于分布式锁完成分布式事务。支持独占锁,共享锁,读写锁,并且支持事务提交失败情况下的回滚操作,让开发者可以有更多时间侧重游戏逻辑.
Stars: ✭ 124 (+12300%)
Mutual labels:  redis-cluster
Redex
Cloud-native Redis server implemented in Elixir
Stars: ✭ 160 (+15900%)
Mutual labels:  redis-cluster
ssdb
SSDB - A fast NoSQL database, an alternative to Redis
Stars: ✭ 8,026 (+802500%)
Mutual labels:  ssdb
Redis Cluster
Redis Cluster setup running on Kubernetes
Stars: ✭ 230 (+22900%)
Mutual labels:  redis-cluster
Anotherredisdesktopmanager
🚀🚀🚀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.
Stars: ✭ 17,704 (+1770300%)
Mutual labels:  redis-cluster

DBProxy

介绍

dbproxy是一个采用C++11编写的代理服务器(不过现在已经使用了一些C++17特性),支持redisssdb数据库。 其主要用于扩容和提高系统负载。使用lua控制sharding,把不同的key-value映射到不同的后端redis或ssdb服务器。

构建

dbproxy支持windwos和linux,需要支持 C++ 17的编译器,且需要使用vcpkg安装brynetluasol. 如果使用vcpkg,则可以直接打开文件夹工程即可构建!

配置文件

dbproxy的配置文件是Config.luaProxyConfigbackendskey配置后端服务器列表,其中的sharding_function指示sharding函数。 作为示例,test_sharding就是被指定的sharding函数,其根据key参数,返回对应的服务器号,这里返回0,意思是将key映射到127.0.0.1 : 6379这个服务器。

补充

目前dbproxy只作为代理映射,不包含读写分离以及额外缓存,也不解决分布式等问题。 当然其服务器C++代码主体并不涉及任何sharding方案,必须由用户自己在Config.lua里自己实现sharding函数 (当然,也可以从网上找现成的,譬如lua版的一致性hash lua-consistent-hash)

感谢

一定程度上借鉴了redis-shattercodis

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].