Predixy 是一款高性能全特征redis代理,支持redis-sentinel和redis-cluster
Predixy可以在所有主流平台下编译,推荐在linux下使用,需要支持C++11的编译器。
编译非常简单,下载或者git clone代码后进到predixy目录,直接执行:
$ make
编译后会在src目录生成一个可执行文件predixy
编译debug版本:
$ make debug
更多编译选项:
一些使用参数编译的例子:
$ make CXX=clang++
$ make EV=poll
$ make MT=false
$ make debug MT=false TS=true
简单的只要拷贝src/predixy到目标路径即可
$ cp src/predixy /path/to/bin
predixy的配置类似redis, 具体配置项的含义在配置文件里有详细解释,请参考下列配置文件:
提供这么多配置文件实际上是按功能分开了,所有配置都可以写到一个文件里,也可以写到多个文件里然后在主配置文件里引用进来。
$ src/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的统计信息。
特别提一下predixy里面的延迟监控信息,可以通过在配置里定义的延迟监控名来看延迟信息
redis> INFO Latency <latency-name>
下面是一个延迟信息输出的例子:
LatencyMonitorName:all
latency(us) sum(us) counts
<= 100 3769836 91339 91.34%
<= 200 777185 5900 97.24%
<= 300 287565 1181 98.42%
<= 400 185891 537 98.96%
<= 500 132773 299 99.26%
<= 600 85050 156 99.41%
<= 700 85455 133 99.54%
<= 800 40088 54 99.60%
<= 1000 67788 77 99.68%
> 1000 601012 325 100.00%
T 60 6032643 100001
The last line is total summary, 60 is average latency(us)
还可以单独看某个redis后端的延迟信息:
redis> INFO ServerLatency <server-address> [latency-name]
要重置所有的统计信息,和redis执行的命令是一样的,不过predixy要求有管理权限才可以重置统计信息
redis> CONFIG ResetStat
predixy很快,有多快?对比几个流行的redis代理(twemproxy,codis,redis-cerberus), predixy要比它们快得多。
具体比较参见Wiki benchmark
Copyright (C) 2017 Joyield, Inc. <joyield.com#gmail.com>
All rights reserved.
License under BSD 3-clause "New" or "Revised" License
微信:cppfan
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。