twemproxy,也叫nutcraker。是twtter开源的一个redis和memcache代理服务器。 redis作为一个高效的缓存服务器,非常具有应用价值。但是当使用比较多的时候,就希望可以通过某种方式 进行统一管理。避免每个应用每个客户端管理连接的松散性。同时在一定程度上变得可以控制。 搜索了不少的开源代理项目,知乎用python实现的redis分片客户端。用node实现的代理中间层,还有各种Restful的开源代理。

  • RedBrige

    • C + epoll实现的一个小的webserver
    • redis自身执行lua脚本的功能来执行redis命令
    • 访问时在url中带上lua脚本文件的名字,直接调用执行该lua脚本
    • 本质是通过http协议远程执行lua脚本
  • Webdis

    • libevent, http-parser...实现的小型web服务器
    • C 语言实现,通过unix-socket,TCP调用redis命令。
    • 访问方法: /cmd/key/arg0,arg1,... 实质是对redis命令的简单变换
  • redis-proxy

    • 使用node写的redis代理层。
    • 支持主从节点的失败处理(可以仔细研究)
    • 测试后发现性能为原生的1/3
  • twemproxy

    • 支持失败节点自动删除

      • 可以设置重新连接该节点的时间
      • 可以设置连接多少次之后删除该节点
      • 该方式适合作为cache存储
    • 支持设置HashTag

      • 通过HashTag可以自己设定将两个KEYhash到同一个实例上去。
    • 减少与redis的直接连接数

      • 保持与redis的长连接
      • 可设置代理与后台每个redis连接的数目
    • 自动分片到后端多个redis实例上

      • 多种hash算法(部分还没有研究明白)
      • 可以设置后端实例的权重
    • 避免单点问题

      • 可以平行部署多个代理层.client自动选择可用的一个
    • 支持redis pipelining request

    • 支持状态监控

      • 可设置状态监控ip和端口,访问ip和端口可以得到一个json格式的状态信息串
      • 可设置监控信息刷新间隔时间
    • 高吞吐量

      • 连接复用,内存复用。
      • 将多个连接请求,组成reids pipelining统一向redis请求。

另外可以修改redis的源代码,抽取出redis中的前半部分,作为一个中间代理层。最终都是通过linux下的epoll 事件机制提高并发效率,其中nutcraker本身也是使用epoll的事件机制。并且在性能测试上的表现非常出色。

配置部署建议: 编译时候打开logging模块。

redis部署知识: AOF;一种记录redis写操作的文件,用于恢复redis数据。

转载于:https://www.cnblogs.com/duyinqiang/p/5696604.html

twemproxy 简介相关推荐

  1. Twemproxy简介

    Twemproxy是一个代理服务器,可以通过它减少Memcached或Redis服务器所打开的连接数. Twemproxy的用途如下: 通过代理的方式减少缓存服务器的连接数 自动在多台缓存服务器间共享 ...

  2. Nginx多进程高并发、低时延、高可靠机制在缓存(redis、memcache)twemproxy代理中的应用...

    1. 开发背景 现有开源缓存代理中间件有twemproxy.codis等,其中twemproxy为单进程单线程模型,只支持memcache单机版和redis单机版,都不支持集群版功能. 由于twemp ...

  3. Twemproxy调研总结

    本文档主要针对Redis的代理程序TwemProxy的使用进行调研和总结,共分为以下几个部分: 1.TwemProxy简介:该部分主要介绍TwemProxy是什么,能干哪些事情,有什么主要特点: 2. ...

  4. Redis原理(Replication、Sentinel、Twemproxy、RedisCluster)

    Redis的主从复制 拷贝自http://blog.csdn.net/stubborn_cow/article/details/50442950 Redis复制工作原理: 1.如果设置了一个Slave ...

  5. 成功安装和配置TwemProxy(nutcracker)

    配置Twemproxy的详细步骤 序言 一.Twemproxy简介 二.安装和配置 1.下载 2.解压4个安装包 3.安装 4.修改环境变量 5.twemproxy的配置 6.启动twemproxy ...

  6. 计算机科学精彩帖子收集

    linux源码 LXR 源自"the Linux Cross Referencer",中间的"X"形象地代表了"Cross".与 Sourc ...

  7. Nginx多进程高并发、低时延、高可靠机制在滴滴缓存代理中的应用

    开发背景 现有开源缓存代理中间件有twemproxy.codis等,其中twemproxy为单进程单线程模型,只支持memcache单机版和redis单机版,都不支持集群版功能. 由于twemprox ...

  8. 三分钟基础:路由器是如何偷偷植入广告的?

    程序员的成长之路 互联网/程序员/成长/职场 关注 阅读本文大概需要 5 分钟. 来源:编程技术宇宙 作者:轩辕之风 1 捞油水 "今天的工作累死了,这好色的人类看了这么多视频,可把我忙的够 ...

  9. twemproxy源码解析1 源码文件总体简介

    在正式开始阅读代码之前,先来看一下代码整体结构 代码规模不大只有1w多行,而且功能划分的比较清晰,包括: 事件处理: event/nc_epoll.c.event/nc_event.h.event/n ...

最新文章

  1. AI工程的实践者:普元积极将场景落地,为企业提供智能化解决方案
  2. 跟我学Springboot开发后端管理系统4:数据库连接池Druid和HikariCP
  3. 第3章 NFS基本应用
  4. Oracle 数据库修改配置文件sga_target参数的值,sga_target值太小导致数据库服务起不来问题解决,调大sga_target参数方法
  5. 安装python应该先安装pycharm还是python_Pycharm及python安装详细步骤及PyCharm配置整理(推荐)...
  6. GameMaker Studio 之中的攻击与受击判定盒
  7. 内置系统账户:Local system/Network service/Local Service 区别
  8. 怎么删除python工程_python根据字典的键来删除元素的方法
  9. 企业实战_11_MyCat垂直拆分相关配置
  10. 具有相同模式的字符串,使用正则表达式组的提取和替换的案例
  11. 一个新的自己从2009年的第一天...
  12. 云计算学习——Overlay网络技术概述
  13. 学计算机的学数学分析吗,学计算机专业是不是对数学的要求很高?
  14. 伺服舵机基础知识汇总
  15. 西门子博图功能指令——标准化
  16. switch范围判断、switch区间判断
  17. php word转化为html,php如何把word转换为html(这里使用COM)
  18. java无法重命名文件_巧妙地解决Java文件重命名失败的问题
  19. 开放经济中的货币-中国视角下的宏观经济
  20. n维椭球体积公式_中考物理各种公式单位换算总结

热门文章

  1. python利器手机版-将安卓手机打造成你的python全栈开发利器
  2. python写一个系统-熬了一晚上,小白用Python写了一个股票提醒系统
  3. python怎么知道用哪个库使用-dir、help 查看python 库 对应的方法 和使用
  4. python入门基础代码图-Python入门基础学习一
  5. python大神-Python 大神 kennethreitz 又搞事了
  6. python画长方形-怎么用python 画出任意占空比的一串矩形方波呢?
  7. python应该怎么自学-Python 应该怎么学?
  8. python自学需要多久-怎么自学python,大概要多久?
  9. python爬虫原理-python爬虫原理详细讲解
  10. python项目超级大脑-python项目之超级大脑