Coder Social home page Coder Social logo

feeyo-redisproxy's Introduction

Feeyo-RedisProxy

一个分布式 Redis 解决方案, 上层应用可以像使用单机的 Redis 一样使用, RedisProxy 底层会处理请求的分发,一切对你无感 ~

内部的服务能力,当前单节点RedisProxy,日处理查询量50亿+, QPS维持在( 50K~80K )

目前已实现的特性:

  • 支持 redis standalone 、 redis cluster 代理
  • 支持 redis cluster 情况下的跨片 marge 操作,如:pipeline 、 mget、 mset、 del mulit key 指令, 通过虚拟内存,解决高并发情况下的 pipeline 的数据堆积问题
  • 支持 多租户、只读权限、自动分配db
  • 支持 访问的数据监控、 use 指令,实时切换后端代理
  • 支持 用户、代理配置的热更新 等等 ...

扩展的运维指令

 动态切换集群
 USE {poodId}
 
 配置热更新
 RELOAD USER
 RELOAD ALL
 RELOAD FRONT
 
 运行信息
 SHOW USER
 SHOW USER_NET_IO 
 SHOW USER_CMD
 SHOW USER_CMD_DETAIL {password}
 
 SHOW CPU
 SHOW MEM
 SHOW QPS
 SHOW CONN
 SHOW USER_CONN
 SHOW BUFFER
 SHOW BIGKEY
 SHOW BIGLENGTH
 SHOW SLOWKEY
 SHOW CMD
 SHOW VER
 SHOW NET_IO
 SHOW VM
 SHOW POOL
 SHOW COST
 
 日志信息
 SHOW LOG_ERROR {line}
 SHOW LOG_WARN {line}
 SHOW LOG_INFO {line}
 SHOW LOG_DEBUG {line}
 
 JVM 指令依赖 JAVA_HOME 
 JVM JSTACK
 JVM JSTAT
 JVM JMAP_HISTO
 JVM JMAP_HEAP
 JVM PS

配置

server.xml, 网络及堆外内存池的相关配置

节点 属性 属性值 描述
property name port 服务端口号
property name reactorSize reactor 用于调度nio,设置为内核大小即可
property name maxBufferSize 堆外内存,可利用的最大空间
property name minBufferSize 堆外内存,可利用的最小空间,初始化就会建立
property name minChunkSize 最小的 chunk
property name increment minChunkSize 到 maxChunkSize 步长
property name maxChunkSize 最大的 chunk
property name bossSize 工作任务的线程数
property name timerSize 定时任务的线程数
property name frontIdleTimeout 前端连接闲置后的超时时间(毫秒)
property name backendIdleTimeout 后端连接闲置后的超时时间(毫秒)

zookeeper 配置 (待续)

pool.xml, 连接池配置信息

节点 属性 描述
pool id 唯一编号
pool name 名称
pool type 类型,0 表示 redis standalone, 1 表示redis cluster
pool maxCon 最大的连接数,超过拒绝透传
pool minCon 最小的连接数
node ip 实际redis node ip
node port 实际redis node port

user.xml, 用户配置信息

节点 属性 描述
user password auth 登录密码
user poolId 通过该id 连接后端连接池
user prefix 自动前缀
user selectDb 非集群情况下,支持强制读写的 redis db, 默认0
user readonly 是否只读账户,默认非只读账户
user isAdmin 是否管理员,默认非管理员

运行

run.sh start
run.sh stop
run.sh restart

feeyo-redisproxy's People

Contributors

block2 avatar jing5877 avatar tristanbf avatar zhuam avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.