From de19d56a5fe3462ee3e7d1c409a4b7a823ed4333 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B4=AA=E8=B6=85=28Chao=20Hong=29?= Date: Thu, 3 Dec 2020 11:16:32 +0800 Subject: [PATCH] Update README.md --- README.md | 73 +++++++++++++++++++++++++++++++++++++------------------ 1 file changed, 50 insertions(+), 23 deletions(-) diff --git a/README.md b/README.md index e09ce86..2bfec21 100644 --- a/README.md +++ b/README.md @@ -2,32 +2,59 @@ 1、twemproxy
代理可以取代twemproxy,比twemproxy性能更高(接近2倍)
一个代理只能管理一个集群
-2、codis
-代理可以取代codis(TODO)
-3、cluster
+2、cluster
代理可以管理redis原生的集群,支持在线扩缩容

+支持Redis虚拟化,一个Redis进程支持上千个使用实例。 + +[测试报告](https://github.com/chaohona/redis-proxy/blob/master/documents/%E6%B5%8B%E8%AF%95%E6%8A%A5%E5%91%8A.md) -代码目录结构
-gredis--|src
- |codis
- |common
- |example
- |proxy
- |redis
- |store
- |thirdparty
- |conf
- |lib
- |bin
- |shell
- Makefile
- README.md
- -怎么编译
-make
-怎么运行
-./bin/gredis-proxy -c ./conf/gredis.toml
+怎么使用
+make
+make release
+cd release
+sh tiny_run.sh
+启动之后可以通过界面"http://ip:8888/redis"申请,释放,清空Redis
yaml解析库为0.6.0版本
+ + +## Redis协议特点 ++ 请求与相应的映射关系靠的是顺序的一一对应,没有回调数据,先发送的请求先响应 ++ 协议头没有协议的整体字节长度信息,只有一个字符一个字符的解析协议,才能知道协议的边界在哪 + +## 代码主流程 ++ main->GR_Run->GR_MasterProcess(监控进程) ++ main->GR_Run->GR_StartNewChild(启动工作进程)->GR_Proxy::WorkLoop + +## GR_Proxy:进程管理类 + +## GR_Epoll: epoll网络事件管理类 +## GR_Event: 网络事件基类,redis和client的连接都继承自它 + +## GR_AccessMgr: 客户端管理类 ++ GR_AccessMgr::CreateListenEvent 启动监听端口 ++ GR_AccessMgr::CreateClientEvent 创建客户端连接GR_AccessEvent + +## GR_AccessEvent: 客户端连接 ++ m_ReadCache 消息接收buffer ++ m_ReadMsg 消息解析器,用于解析收到的redis协议的消息 ++ m_pRoute Redis连接管理,客户端消息路由处理类 ++ m_pWaitRing 等待响应的请求等待队列 ++ GR_AccessEvent::Read->ProcessMsg处理从客户端过来的消息 + + m_pRoute->Route 将消息路由给对应的Redis ++ GR_AccessEvent::DoReply 处理从redis响应的消息 + + GR_AccessEvent::Sendv 向客户端发送收到的响应 + +## GR_RedisEvent:Redis连接 ++ m_ReadCache 消息接收buffer ++ m_ReadMsg 消息解析器,用于解析收到的redis协议的消息 ++ m_pWaitRing 等待响应的请求等待队列 ++ GR_RedisEvent::Sendv 向Redis发送收到的客户端的请求 ++ GR_RedisEvent::Read->ProcessMsg 处理从Redis过来的消息 + + pIdenty->GetReply 将响应返回给客户端 + +## GR_Route:Redis连接管理基类,处理请求到Redis的路由 ++ GR_ClusterRoute Redis原生集群的消息路由处理类 ++ GR_TwemRoute Twem模式的消息路由处理类