RedisProxy

跨平台redis proxy代理服务器
授权协议 MIT
开发语言 C/C++
所属分类 服务器软件、 代理服务器软件
软件类型 开源软件
地区 国产
投 递 者 阎知
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

介绍

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

构建

dbproxy支持windwos和linux。

  • windows:打开根目录的DBProxy.sln编译即可。

  • linux:

    • 在根目录下执行 make 即可构建 dbproxy 可执行文件

配置文件

dbproxy的配置文件是Config.lua其ProxyConfigbackendskey配置后端服务器列表,其中的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

  • 一、Redis-cluster 针对单节点Redis出现的扩容等问题,Redis官方在Redis3.0版本时推出了Redis集群模式,集群模式主要有以下4个特点: 1、redis cluster 采用无中心结构,每个节点都保存数据和整个集群的状态; 2、节点之间使用GOSSIP协议彼此互联(PING-PONG机制),这些连接保持活跃,内部使用二进制协议优化传输速度和带宽; 3、节点的fail是通过

  •     在Redis访问量比较大的情况,如果将请求都压在单实例上,将会造成Redis负载过高,连接数超限。因此为了平衡请求可将请求分散在通过Redis多个从库上,从库负责读,而主库负责写,redis proxy就是如何选择服务器并将请求分配的机制。     redis服务器的配置分三个维度:环境、主从、num确定一个服务器,num根据uid和app等来确定。每个app对应确定的库。在进行实例化的时

  • Twemproxy – Twitter 开源的 Redis proxy 作者:nosqlfan on 星期天, 一月 20, 2013 · 评论本文 【阅读:9,850 次】 在去年的QCon London2012 大会上,Twitter 发表了题为 《Timelines @ Twitter》的演讲,里面提到以Redis作为其timeline的主要存储,目前目测全球范围内,Twitter可能是Re

  • 最近在开发项目的时候,踩了一个redis相关的坑,现分享给大家。 使用的第三方库是 redigo, 连的redis地址是一个proxy, 首先要说的是,redigo 和 redis proxy 都是好东西,redigo的源码看着很清晰,redis proxy也很棒。刀是好刀,但是用的姿势不对就会伤到自己。 这个坑就是关于redigo连接池的: RedisPool = &redis.Pool{

  • While a big number of users use large farms of Redis nodes, from the point of view of the project itself currently Redis is a mostly single-instance business. I've big plans about going distributed w

  • 编译源代码 打包环境centos7.9 下载项目源代码 git clone git@github.com:RedisLabs/redis-cluster-proxy.git 进入项目目录: cd redis-cluster-proxy 编译 make PREFIX=/usr/local/redis_cluster_proxy install 注:未安装git: yum install git 注:

  • 一、PHP_METHOD(redis_connect_pool, __construct) {     1.1 新建一个实例     1.2 cpPid=getpid() } 转载于:https://my.oschina.net/u/3474060/blog/1538384

  • redis proxy OR CacheServer扮演的角色应该具备至少以下几点: 1.redis扩容时对client-side无感知 2.承载redis-server 连接 3.集群分片 4.维护集群关系 5.高可用容灾 6.足够健壮稳定 7.动态扩容 8.冷热数据,缓存淘汰,数据一致性         转载于:https://my.oschina.net/kkkkkkkkkkkkk/blog

  • https://github.com/twitter/twemproxy/blob/master/notes/redis.md

 相关资料
  • 一个分布式 Redis 解决方案, 上层应用可以像使用单机的 Redis 一样使用, RedisProxy 底层会处理请求的分发,一切对你无感 ~ 目前已实现的特性: 支持 redis standalone 、 redis cluster 代理 支持 redis cluster 情况下的跨片 marge 操作,如:pipeline 、 mget、 mset、 del mulit key 指令, 通

  • 直到最近,我还认为WCF服务仅限于.NET(即只能从.NET应用程序访问),因为它们公开了一个.NET对象,使用者在该对象上调用方法(然后当然在服务器上运行)。 然后我读到WCF服务是跨平台的;即可以从多种平台访问,而不仅仅是.NET。

  • 服务管理平台是一个开发者使用的平台,它能够通过可视化配置,自动生成接口服务,同时为了安全性和差异化服务,加入了接口权限控制功能,同时一键发布到数据汇总平台,并查看相关帮助文档,接口参数等信息。最后全程监控服务调用过程,记录相关日志服务信息,确保系统稳定,排查系统异常,同时提供相关接口调用统计分析数据。 服务的功能架构如下: 四个模块之间通过接口服务串联起来。     1. 首先需要进行服务配置,配

  • 多平台支持 Mpx支持在多个小程序平台中进行增强,目前支持的小程序平台包括微信,支付宝,百度,qq和头条,不过自2.0版本后,Mpx支持了以微信增强语法为base的跨平台输出,实现了一套业务源码在多端输出运行的能力,大大提升了多小程序平台业务的开发效率,详情可以查看template增强特性 不同平台上的模板增强指令按照平台的指令风格进行设计,文档和代码示例为了方便统一采用微信小程序下的书写方式。

  • 问题内容: 简而言之:在iPhone和Android版本之间共享/重用代码的最有效方法是什么? 我认为最常见的两种情况是: 空白计划新项目,提前知道每个设备上都需要运行大量可重用的逻辑。 现有的iPhone代码库,可将C,C ++和Objective-C移植到Android NDK或其他方式。 当然,在完美的世界中,所有应用程序都只会插入神奇的云中,而所有可重用的逻辑都将出现在Google App

  • 问题内容: py2exe很棒,每当我想打包一个要在Windows系统上运行的python程序时,我都会使用py2exe。 我的问题是,是否可以使用等效工具在Windows上打包程序,但是可以在Linux上运行? 问题答案: 好的,我已经做到了。这有点hacky,但是对于我的用例来说效果很好。 要点是使用ModuleFinder查找所有导入的模块,过滤掉所有系统模块,编译并压缩它们。 不幸的是,我的