美文网首页
redis 代理工具Predixy安装部署

redis 代理工具Predixy安装部署

作者: 肖金光xjg | 来源:发表于2019-08-22 15:22 被阅读0次

    redis 代理工具Predixy安装部署

    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可以在所有主流平台下编译,推荐在linux下使用,需要支持C++11的编译器。
    编译非常简单,下载或者git clone代码后进到predixy目录,直接执行: 首先解决编译依赖:

    yum install libstdc++-static gcc gcc-c++ -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, 延迟监控规则定义,可以指定需要监控的命令以及延时时间间隔
      提供这么多配置文件实际上是按功能分开了,所有配置都可以写到一个文件里,也可以写到多个文件里然后在主配置文件里引用进来。
      predisy安装说明
      详细配置说明

    配置后端redis集群

    拷贝conf目录/etc/predixy
    mv conf/ /etc/predixy
    编辑cluster.conf文件

    ClusterServerPool {
        Password Mwbktest821  #配置后端redis的认证密码
        MasterReadPriority 60
        StaticSlaveReadPriority 50
        DynamicSlaveReadPriority 50
        RefreshInterval 1
        ServerTimeout 1
        ServerFailureLimit 10
        ServerRetryTimeout 1
        KeepAlive 120
        Servers {   #添加redis集群节点
            + 172.16.3.76:7001
            + 172.16.3.76:7002
            + 172.16.3.76:7003
            + 172.16.3.76:7004
            + 172.16.3.76:7005
            + 172.16.3.76:7006
        }
    }
    

    运行predixy

    predixy /etc/predixy/predixy.conf &
    

    验证

    redis-cli -p 7617 info
    

    统计信息

    redis> INFO
    

    延迟信息:

    redis> INFO Latency <latency-name>
    

    单独看某个redis后端的延迟信息:

    redis> INFO ServerLatency <server-address> [latency-name]
    

    实例:

    127.0.0.1:7617> INFO Latency get
    # LatencyMonitor
    LatencyMonitorName:get
    <=          200                18656               97 0.00%
    <=          300             10496400            37962 0.63%
    <=          400             79082634           221420 4.32%
    <=          500            142095093           315154 9.56%
    <=          600            150254914           274338 14.12%
    <=          700             99465524           154433 16.69%
    <=          800             66229983            88477 18.17%
    <=          900             73444653            86258 19.60%
    <=         1000             95578310           100383 21.27%
    >          1000          48826311359          4732159 100.00%
    T          8242          49542977526          6010681
    

    相关文章

      网友评论

          本文标题:redis 代理工具Predixy安装部署

          本文链接:https://www.haomeiwen.com/subject/sfwnsctx.html