redis 代理工具Predixy安装部署
admin
2023-05-21 22:02:56
0

Predixy

Predixy 是一款高性能全特征redis代理,支持redis-sentinel和redis-cluster

特性

  • 高性能并轻量级

  • 支持多线程

  • 多平台支持:Linux、OSX、BSD、Windows(Cygwin)

  • 支持Redis Sentinel,可配置一组或者多组redis

  • 支持Redis Cluster

  • 支持redis阻塞型命令,包括blpop、brpop、brpoplpush

  • 支持scan命令,无论是单个redis还是多个redis实例都支持

  • 多key命令支持: mset/msetnx/mget/del/unlink/touch/exists

  • 支持redis的多数据库,即可以使用select命令

  • 支持事务,当前仅限于Redis Sentinel下单一redis组可用

  • 支持脚本,包括命令:script load、eval、evalsha

  • 支持发布订阅机制,也即Pub/Sub系列命令

  • 多数据中心支持,读写分离支持

  • 扩展的AUTH命令,强大的读、写、管理权限控制机制,健空间限制机制

  • 日志可按级别采样输出,异步日志记录避免线程被io阻塞

  • 日志文件可以按时间、大小自动切分

  • 丰富的统计信息,包括CPU、内存、请求、响应等信息

  • 延迟监控信息,可以看到整体延迟,分后端redis实例延迟

predixy很快,有多快? 对比几个流行的redis代理(twemproxy,codis,redis-cerberus), predixy要比它们快得多。

编译

Predixy可以在所有主流平台下编译,推荐在linux下使用,需要支持C++11的编译器。

编译非常简单,下载或者git clone代码后进到predixy目录,直接执行: 首先解决编译依赖:

yum install libstdc++-static -y                 
   git clone https://github.com/joyieldInc/predixy.git  

cd predixy/

$ make

编译后会在src目录生成一个可执行文件predixy

编译debug版本:

$ make debug

更多编译选项:

  • CXX=ccompiler,指定c编译器,缺省是g++,可以指定为其它,例如:CXX=clang++

  • EV=epoll|poll|kqueue,指定异步io模型,缺省情况下是根据平台来检测

  • MT=false, 关闭多线程支持

  • TS=true, 开启函数调用耗时分析,该选项仅用于开发模式

一些使用参数编译的例子:

$ make CXX=clang++$ make EV=poll$ make MT=false$ make debug MT=false TS=true

安装

简单的只要拷贝src/predixy到目标路径即可

$ cp src/predixy /usr/local/bin/

$ mkdir   -p /var/log/predixy/

predixy的配置类似redis, 具体配置项的含义在配置文件里有详细解释,请参考下列配置文件:

  • predixy.conf,整体配置文件,会引用下面的配置文件

  • cluster.conf,用于Redis Cluster时,配置后端redis信息

  • sentinel.conf,用于Redis Sentinel时,配置后端redis信息

  • auth.conf,访问权限控制配置,可以定义多个验证密码,可每个密码指定读、写、管理权限,以及定义可访问的健空间

  • dc.conf,多数据中心支持,可以定义读写分离规则,读流量权重分配

  • latency.conf, 延迟监控规则定义,可以指定需要监控的命令以及延时时间间隔

提供这么多配置文件实际上是按功能分开了,所有配置都可以写到一个文件里,也可以写到多个文件里然后在主配置文件里引用进来。

运行

$ predixy /predixy/conf/predixy.conf

使用默认的配置文件predixy.conf, predixy将监听地址0.0.0.0:7617,后端的redis是Redis Cluster 127.0.0.1:6379。通常,127.0.0.1:6379并不是运行在Redis Clusterr模式下,因此Predixy将 会有大量的错误日志输出。不过你依然可以用redis-cli连接predixy来试用一下:

$ redis-cli -p 7617 info

执行上条命令后可以看到predixy自身的一些信息,如果127.0.0.1:6379在运行的话,你可以试试其它redis命令,看看效果如何。

更多的启动命令行参数请看帮助:

$ src/predixy -h

统计信息

和redis一样,predixy用INFO命令来给出统计信息。

在redis-cli连接下执行下面的命令:

redis> INFO

你将看到类似redis执行INFO命令的输出,不过这里是predixy的统计信息。

benchmark 配置详细文档


相关内容

热门资讯

美国罕见缩减全球外交规模,涉日... 据凤凰卫视援引外媒8月4日报道,美国国务院已通知国会,计划关闭5个驻外使团。报道称,这是美国罕见地缩...
强震后遇“烤验”,日本熊本出现... 据凤凰卫视报道,一周前发生7.1级地震的日本熊本县,救灾仍在进行当中,现又遭遇酷热威胁,县府所在地熊...
红十字国际委员会代表与昂山素季... 昂山素季3日罕见公开露面。缅甸总统办公室表示,红十字国际委员会代表探视了昂山素季,并与她私下交谈。联...
普京回答小男孩什么是胜利 据凤凰卫视报道,8月3日,俄罗斯总统普京与全俄“大变革”竞赛总决赛选手交谈时,13岁的年轻选手卡泽金...
菲尔兹奖与定点爆破 【文/观察者网专栏作者 边芹】近日舆论场一片喜庆,中国数学家得了菲尔兹奖。自1978年后,这类新闻便...
“救”在身边!4天2场“急”时... ▲红十字少年叶子豪与护士马莉开展紧急救援。台海网8月4日讯(导报记者 石程罗纳 通讯员 苏映红 陈雅...
Claude仅用8分钟,5年未... 新智元报道 25分钟,500个钱包被洗劫一空! 这几天,知名硬件钱包Coldcard暴雷,而引发这...
低价流量卡一夜消失!三大运营商... 最近几天,关于流量卡的讨论热度越来越高,原因很简单——流量卡没了。 最开始,只是有网友突然上传了一份...
薪火传家 执“戟”报国——王戟... 新华社长沙8月3日电 题:薪火传家 执“戟”报国——国防科技大学研究员王戟的家风故事新华社记者黄明、...
夏季战役第二阶段打响,乌方称俄... 据凤凰卫视报道,俄乌夏季战役第二阶段已经打响,顿巴斯中线多地陷入持续激战,俄军拿下了别列茨克定居点,...