This is an automated email from the ASF dual-hosted git repository.
wangdan pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-pegasus-website.git
The following commit(s) were added to refs/heads/master by this push:
new 1e214642 Update Redis Chinese doc (#55)
1e214642 is described below
commit 1e21464267e52197b484eeadd7e5f6372526011e
Author: Yingchun Lai <[email protected]>
AuthorDate: Wed Jan 10 19:55:08 2024 +0800
Update Redis Chinese doc (#55)
---
_docs/zh/api/redis.md | 73 ++++++++------
assets/drawio/apache_pegasus_website.drawio | 144 +++++++++++++++++++++++++++-
assets/images/redis_proxy_arch.png | Bin 36247 -> 144855 bytes
3 files changed, 187 insertions(+), 30 deletions(-)
diff --git a/_docs/zh/api/redis.md b/_docs/zh/api/redis.md
index 84720cc2..a20068f5 100644
--- a/_docs/zh/api/redis.md
+++ b/_docs/zh/api/redis.md
@@ -2,41 +2,47 @@
permalink: api/redis
---
-# Redis适配
+# Redis 适配
## 架构
-在pegasus上添加了redis proxy后,用户可以通过redis协议直接访问proxy,从而间接访问pegasus服务。整体架构如下:
+在 Pegasus 集群中部署 Redis Proxy 组件后,用户可以通过 Redis 协议直接访问 Redis Proxy,从而间接访问 Pegasus
服务,从而实现使用 Redis 客户端访问 Pegasus 服务的目的。
+
+整体架构如下:
{:class="img-responsive"}
-redis客户端与redis
proxy之间使用[redis协议](https://redis.io/topics/protocol),目前proxy已支持所有redis
数据类型(Simple Strings、Errors、Integers、Bulk Strings、Arrays)。
+Redis 客户端与 Redis Proxy 之间使用[redis协议](https://redis.io/topics/protocol),目前
Proxy 已支持所有的 RESP2
[协议](https://redis.io/docs/reference/protocol-spec/)数据类型(即:Simple
Strings、Errors、Integers、Bulk Strings、Arrays)。
-redis proxy与pegasus集群之间使用pegasus的thrift协议,proxy在这里就类似一个普通的pegasus client,从meta
server查询meta信息、与replica server进行用户数据的读写。
+Redis Proxy 与 Pegasus 集群之间使用 Pegasus 的协议,Proxy 在这里就类似一个普通的 Pegasus Client,从
Meta Server 查询路由信息、与 Replica Server 进行用户数据的读写。
## 提供服务的形式
-跟redis服务一样,以``host:port``形式提供,如果服务压力大,可以提供多个``host:port``来避免单点proxy压力过大造成瓶颈。当提供多个redis
proxy地址时,由于后端访问的都是同一个集群的同一张表,数据是完全相同的。用户可以采用round robin, hash等方式进行负载均衡。
+跟 Redis 服务一样,Proxy 实例以 `host:port` 形式提供。如果服务压力大,可以提供多个 Proxy
实例,通过水平扩展的方式来提升服务吞吐量。
+
+Proxy 是无状态的,多个 Proxy 实例共享同一个后端 Pegasus 服务。可以采用round robin, hash等方式进行负载均衡。
->proxy的可执行文件为``pegasus_rproxy``, 由``./run.sh pack_tools``打包生成。
+> Proxy 的可执行文件为 `pegasus_rproxy`, 由 `./run.sh pack_tools`
[打包](/docs/build/compile-by-docker/#packaging)生成。
## 配置
-redis
proxy的配置文件规则遵循[配置说明](/administration/config),参考[示例](https://github.com/apache/incubator-pegasus/blob/master/src/geo/bench/config.ini)。
+Redis Proxy
的配置文件规则遵循[配置说明](/administration/config),参考[示例](https://github.com/apache/incubator-pegasus/blob/master/src/redis_protocol/proxy/config.ini)。
-在redis proxy中有几项特有的配置项需要注意:
+在 Proxy 中有几项特有的配置项需要注意:
```
[apps.proxy]
name = proxy
type = proxy
; which pegasus cluster and table dose this proxy redirect to
-; 'onebox' is the cluster name which will be used in the next section
-; 'temp' is the table name in the cluster
+; - 'onebox': the cluster name which will be used in the next section
+; - 'temp': the table name in the cluster
+
arguments = onebox temp
; if using GEO APIs, an extra table name which will store geo index data
; should be appended, i.e.
; arguments = onebox temp temp_geo
+
; port serve for redis clients
ports = 6379
pools = THREAD_POOL_DEFAULT
@@ -49,21 +55,29 @@ onebox = 127.0.0.1:34601,127.0.0.1:34602,127.0.0.1:34603
## APIs
-redis的原生命令请见[这里](https://redis.io/commands) 。
+Redis 的原生命令请见[这里](https://redis.io/commands) 。
-以下接口说明都兼容redis原生命令,但支持的参数可能少于redis,以下接口说明中都给出了目前Pegasus代理所支持的所有参数,未给出的目前不支持。
+以下接口都兼容 Redis 原生命令,但支持的参数可能少于 Redis。
-### KEY规则
+> 以下文档中都给出了目前 Pegasus Redis Proxy 所支持的所有参数,未给出的目前不支持。
-#### KV API
+### 协议
-对于redis的普通key-value操作,key对应到Pegasus中的hashkey,而Pegasus中的sortkey被设置为空串``""``。如`SET`,
`GET`, `TTL`, `INCR`等。
+#### Strings API
+
+对于 Redis 的 [strings](https://redis.io/docs/data-types/strings/) 操作,key 对应到
Pegasus 中的 hashkey,而 Pegasus 中的 sortkey 被设置为空串 `""`。
+
+支持的命令如:`SET`, `GET`, `TTL`, `INCR`等。
#### GEO API
-在原生redis中,`GEO*`接口操作的数据是通过`GEOADD key longitude latitude
member`添加到数据库中的,这时`key`是一个namespace的概念,而不是`SET`操作时的key。
+在 Redis 中,[GEO](https://redis.io/docs/data-types/geospatial/) 接口操作的数据是通过
[GEOADD](https://redis.io/commands/geoadd/),即 `GEOADD key longitude latitude
member`,添加到数据库中的。此处的 `key` 是一个 namespace 的概念,而不是 `SET` 操作时的 key。
+
+而在 Pegasus Proxy 中,由于底层的实现原理不同,他的 `GEO*` 接口操作的数据是通过 `SET` 接口添加到数据库中的,`SET` 的
key 对应于 `GEO*` 接口的 member,而 `GEO*` 接口的 key 则只能是空串 `""`。
+
+也就是说,在 Pegasus 的 Redis GEO 数据中,不再有 namespace 的概念,全部数据在同一空间 `""` 下。若要区分
namespace,可以在 Pegasus 层创建新的表来实现。
-而pegasus
proxy的`GEO*`接口操作的数据是通过`SET`接口添加到数据库中的,`SET`的key对应于`GEO*`接口的member,而`GEO*`接口的key则只能是``""``。也就是说,在pegasus
的redis
GEO数据中,不再有namespace的概念,全部数据在同一空间`""`下,若要区分key空间,则可以在pegasus层创建新的table实现。具体参考后面的示例。
+`SET` 的 value
格式参考[这里](https://pegasus.apache.org/zh/api/geo#%E8%87%AA%E5%AE%9A%E4%B9%89extrator)。
### SET
@@ -83,9 +97,11 @@ GET key
DEL key
```
-注意:
+**注意:**
-1. 这里的接口返回值和redis的定义略有不同:当key不存在时,redis接口返回0,这里则返回1。
+这里的接口返回值和 Redis 的定义略有不同:
+- 当 key 不存在时,Redis 接口返回 0,表示本次没有删除有效数据
+- Pegasus Proxy 由于没有对不存在和删除成功做区别,都统一返回的 1
### SETEX
@@ -137,9 +153,9 @@ DECRBY key decrement
GEODIST key member1 member2 [unit]
```
-注意:
+**注意:**
-1. key规则遵循GEO API的key规则:这里的key只能是``""``,而这里member对应于`SET`操作时的key。
+- key 规则遵循 GEO API 的 key 规则,即 key 只能是空串 `""`,而这里 member 对应于 `SET` 操作时的 key
### GEORADIUS
@@ -147,9 +163,9 @@ GEODIST key member1 member2 [unit]
GEORADIUS key longitude latitude radius m|km|ft|mi [WITHCOORD][WITHDIST]
[WITHHASH][COUNT count] [ASC|DESC]
```
-注意:
-1. key规则遵循GEO API的key规则:这里的key只能是``""``,而这里member对应于`SET`操作时的key。
-2. 我们对redis的``WITHHASH``参数进行了修改,使用它将会返回该member的value。
+**注意:**
+- key 规则遵循 GEO API 的 key 规则,即 key 只能是空串 `""`,而这里 member 对应于 `SET` 操作时的 key
+- Pegasus 对 Redis 的 `WITHHASH` 参数进行了修改,使用它将会返回该 member 的 value 值
### GEORADIUSBYMEMBER
@@ -157,13 +173,14 @@ GEORADIUS key longitude latitude radius m|km|ft|mi
[WITHCOORD][WITHDIST] [WITHHA
GEORADIUSBYMEMBER key member radius m|km|ft|mi [WITHCOORD][WITHDIST]
[WITHHASH][COUNT count] [ASC|DESC]
```
-注意:
-1. key规则同上,这里的key只能是``""``,而这里member对应于`SET`操作时的key。
-2. 我们对redis的``WITHHASH``参数进行了修改,使用它将会返回该member的value。
+**注意:**
+- key 规则遵循 GEO API 的 key 规则,即 key 只能是空串 `""`,而这里 member 对应于 `SET` 操作时的 key
+- Pegasus 对 Redis 的 `WITHHASH` 参数进行了修改,使用它将会返回该 member 的 value 值
## 示例
```
+// Strings API 使用示例
127.0.0.1:6379> SET abc 1 EX 60
OK
@@ -176,7 +193,7 @@ OK
127.0.0.1:6379> INCR abc
(integer) 2
-// 以下是GEO API, 注意需要提前创建好geo表
+// GEO API 使用示例
127.0.0.1:6379> SET 1cc0001000010290050356f
"1cc0001000010290050356f|2018-06-10 23:59:59|2018-06-11
13:00:00|wx5j5ff05|116.886447|40.269031|4.863045|20.563248|0|-1"
OK
diff --git a/assets/drawio/apache_pegasus_website.drawio
b/assets/drawio/apache_pegasus_website.drawio
index 0459b77e..28ec05a1 100644
--- a/assets/drawio/apache_pegasus_website.drawio
+++ b/assets/drawio/apache_pegasus_website.drawio
@@ -1,4 +1,4 @@
-<mxfile host="Electron" modified="2024-01-05T09:56:46.994Z" agent="Mozilla/5.0
(Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko)
draw.io/22.1.16 Chrome/120.0.6099.109 Electron/28.1.0 Safari/537.36"
etag="vebhnIL_wdysxJfvMTPv" version="22.1.16" type="device" pages="13">
+<mxfile host="Electron" modified="2024-01-10T09:01:24.785Z" agent="Mozilla/5.0
(Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko)
draw.io/22.1.16 Chrome/120.0.6099.109 Electron/28.1.0 Safari/537.36"
etag="RFiWTghfV5C96DXCOIWN" version="22.1.16" type="device" pages="14">
<diagram id="pLOfRoBbhm5PAiLyfamx" name="architecture">
<mxGraphModel dx="2261" dy="907" grid="1" gridSize="10" guides="1"
tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1"
pageWidth="827" pageHeight="1169" math="0" shadow="0">
<root>
@@ -1147,7 +1147,7 @@
</root>
</mxGraphModel>
</diagram>
- <diagram name="performance" id="Ot2lM1rBpEvDeAbCTTqb">
+ <diagram name="performance_2.4" id="Ot2lM1rBpEvDeAbCTTqb">
<mxGraphModel dx="1434" dy="907" grid="1" gridSize="10" guides="1"
tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1"
pageWidth="827" pageHeight="1169" math="0" shadow="0">
<root>
<mxCell id="0" />
@@ -1883,4 +1883,144 @@
</root>
</mxGraphModel>
</diagram>
+ <diagram id="gkJz-hosiwD8HvD8s_pO" name="redis">
+ <mxGraphModel dx="1723" dy="567" grid="1" gridSize="10" guides="1"
tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1"
pageWidth="827" pageHeight="1169" math="0" shadow="0">
+ <root>
+ <mxCell id="0" />
+ <mxCell id="1" parent="0" />
+ <mxCell id="RSygPqoX0ETCJNmXeyCP-56" value=""
style="rounded=1;whiteSpace=wrap;html=1;sketch=1;curveFitting=1;jiggle=2;strokeWidth=2;connectable=1;allowArrows=1;recursiveResize=1;"
vertex="1" parent="1">
+ <mxGeometry x="240.5" y="490" width="155" height="60" as="geometry"
/>
+ </mxCell>
+ <mxCell id="RSygPqoX0ETCJNmXeyCP-55" value=""
style="rounded=1;whiteSpace=wrap;html=1;sketch=1;curveFitting=1;jiggle=2;strokeWidth=2;connectable=1;allowArrows=1;recursiveResize=1;"
vertex="1" parent="1">
+ <mxGeometry x="224" y="470" width="155" height="60" as="geometry" />
+ </mxCell>
+ <mxCell id="RSygPqoX0ETCJNmXeyCP-47" value=""
style="rounded=1;whiteSpace=wrap;html=1;sketch=1;curveFitting=1;jiggle=2;strokeWidth=2;connectable=1;allowArrows=1;recursiveResize=1;"
vertex="1" parent="1">
+ <mxGeometry x="209" y="450" width="155" height="60" as="geometry" />
+ </mxCell>
+ <mxCell id="RSygPqoX0ETCJNmXeyCP-5" value=""
style="rounded=1;whiteSpace=wrap;html=1;strokeColor=#F19C99;sketch=1;fontFamily=Comic
Sans MS;" vertex="1" parent="1">
+ <mxGeometry x="58.62" y="350" width="110" height="40" as="geometry"
/>
+ </mxCell>
+ <mxCell id="RSygPqoX0ETCJNmXeyCP-7" value=""
style="rounded=1;whiteSpace=wrap;html=1;strokeColor=#F19C99;sketch=1;fontFamily=Comic
Sans MS;" vertex="1" parent="1">
+ <mxGeometry x="202" y="350" width="110" height="40" as="geometry" />
+ </mxCell>
+ <mxCell id="RSygPqoX0ETCJNmXeyCP-10" value=""
style="rounded=1;whiteSpace=wrap;html=1;strokeColor=#F19C99;sketch=1;fontFamily=Comic
Sans MS;" vertex="1" parent="1">
+ <mxGeometry x="340" y="350" width="110" height="40" as="geometry" />
+ </mxCell>
+ <mxCell id="RSygPqoX0ETCJNmXeyCP-19" value="<b>ReplicaServer
0</b>"
style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=14;sketch=1;fontFamily=Comic
Sans MS;" vertex="1" parent="1">
+ <mxGeometry x="48.62" y="355" width="130" height="30" as="geometry"
/>
+ </mxCell>
+ <mxCell id="RSygPqoX0ETCJNmXeyCP-20" value="<b>ReplicaServer
1</b>"
style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=14;sketch=1;fontFamily=Comic
Sans MS;" vertex="1" parent="1">
+ <mxGeometry x="192" y="355" width="130" height="30" as="geometry" />
+ </mxCell>
+ <mxCell id="RSygPqoX0ETCJNmXeyCP-21" value="<b>ReplicaServer
2</b>"
style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=14;sketch=1;fontFamily=Comic
Sans MS;" vertex="1" parent="1">
+ <mxGeometry x="330" y="355" width="130" height="30" as="geometry" />
+ </mxCell>
+ <mxCell id="RSygPqoX0ETCJNmXeyCP-22" value=""
style="rounded=1;whiteSpace=wrap;html=1;dashed=1;fontSize=15;strokeColor=#FFB570;fontFamily=Comic
Sans MS;sketch=1;curveFitting=1;jiggle=2;" vertex="1" parent="1">
+ <mxGeometry x="95" y="160" width="320" height="100" as="geometry" />
+ </mxCell>
+ <mxCell id="RSygPqoX0ETCJNmXeyCP-23"
value="<span>MetaServer</span><br><span><font
color="#3d3d3d" style="font-size:
13px;"><i>backup</i></font></span>"
style="rounded=1;whiteSpace=wrap;html=1;fontSize=15;dashed=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fillStyle=solid;gradientColor=#7ea6e0;fontFamily=Comic
Sans MS;sketch=1;curveFitting=1;jiggle=2;" vertex="1" parent="1">
+ <mxGeometry x="315" y="170" width="90" height="50" as="geometry" />
+ </mxCell>
+ <mxCell id="RSygPqoX0ETCJNmXeyCP-24"
value="<span>MetaServer</span><br><span><font
color="#3d3d3d" style="font-size:
13px;"><i>backup</i></font></span>"
style="rounded=1;whiteSpace=wrap;html=1;fontSize=15;dashed=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fillStyle=solid;gradientColor=#7ea6e0;fontFamily=Comic
Sans MS;sketch=1;curveFitting=1;jiggle=2;" vertex="1" parent="1">
+ <mxGeometry x="105" y="170" width="90" height="50" as="geometry" />
+ </mxCell>
+ <mxCell id="RSygPqoX0ETCJNmXeyCP-25" value="<font
color="#4d4d4d">MetaServer</font><br><i
style=""><font color="#3d3d3d" style="font-size:
13px;">leader</font></i>"
style="rounded=1;whiteSpace=wrap;html=1;fontSize=15;fillColor=#d5e8d4;strokeColor=#82b366;fillStyle=solid;gradientColor=#97d077;fontFamily=Comic
Sans MS;sketch=1;curveFitting=1;jiggle=2;" vertex="1" parent="1">
+ <mxGeometry x="209" y="200" width="96" height="50" as="geometry" />
+ </mxCell>
+ <mxCell id="RSygPqoX0ETCJNmXeyCP-26" value="<font
style="font-size: 9px;">Pegasus Client Lib</font>"
style="rounded=1;whiteSpace=wrap;html=1;fontSize=15;fillColor=#fad9d5;strokeColor=#ae4132;sketch=1;fontFamily=Comic
Sans MS;fontStyle=1" vertex="1" parent="1">
+ <mxGeometry x="209" y="450" width="85" height="20" as="geometry" />
+ </mxCell>
+ <mxCell id="RSygPqoX0ETCJNmXeyCP-27" value=""
style="curved=1;endArrow=classic;html=1;rounded=0;dashed=1;fontSize=14;strokeColor=#FF3333;strokeWidth=2;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.75;entryDx=0;entryDy=0;sketch=1;fontFamily=Comic
Sans MS;" edge="1" parent="1" source="RSygPqoX0ETCJNmXeyCP-26"
target="RSygPqoX0ETCJNmXeyCP-25">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <mxPoint x="70" y="370" as="sourcePoint" />
+ <mxPoint x="120" y="320" as="targetPoint" />
+ <Array as="points">
+ <mxPoint x="30" y="460" />
+ <mxPoint x="-10" y="370" />
+ <mxPoint x="20" y="290" />
+ <mxPoint x="140" y="237" />
+ </Array>
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="RSygPqoX0ETCJNmXeyCP-28" value="fetch route table"
style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=13;fontColor=#3D3D3D;fontFamily=Comic
Sans MS;" vertex="1" connectable="0" parent="RSygPqoX0ETCJNmXeyCP-27">
+ <mxGeometry x="-0.3728" y="-4" relative="1" as="geometry">
+ <mxPoint y="-16" as="offset" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="RSygPqoX0ETCJNmXeyCP-29" value=""
style="endArrow=classic;html=1;rounded=0;fontSize=14;strokeColor=#001DBC;strokeWidth=2;entryX=0.5;entryY=1;entryDx=0;entryDy=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;fillColor=#0050ef;sketch=1;fontFamily=Comic
Sans MS;" edge="1" parent="1" source="RSygPqoX0ETCJNmXeyCP-26"
target="RSygPqoX0ETCJNmXeyCP-5">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <mxPoint x="83.62" y="460" as="sourcePoint" />
+ <mxPoint x="133.62" y="410" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="RSygPqoX0ETCJNmXeyCP-30" value=""
style="endArrow=classic;html=1;rounded=0;fontSize=14;strokeColor=#001DBC;strokeWidth=2;entryX=0.5;entryY=1;entryDx=0;entryDy=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;fillColor=#0050ef;sketch=1;fontFamily=Comic
Sans MS;" edge="1" parent="1" source="RSygPqoX0ETCJNmXeyCP-26"
target="RSygPqoX0ETCJNmXeyCP-7">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <mxPoint x="93.62" y="470" as="sourcePoint" />
+ <mxPoint x="123.62" y="400" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="RSygPqoX0ETCJNmXeyCP-31" value="<span
style="color: rgba(0, 0, 0, 0); font-size: 0px; text-align: start;
background-color: rgb(248, 249,
250);">%3CmxGraphModel%3E%3Croot%3E%3CmxCell%20id%3D%220%22%2F%3E%3CmxCell%20id%3D%221%22%20parent%3D%220%22%2F%3E%3CmxCell%20id%3D%222%22%20value%3D%22R%2FW%20request%22%20style%3D%22edgeLabel%3Bhtml%3D1%3Balign%3Dcenter%3BverticalAlign%3Dmiddle%3Bresizable%3D0%3Bpoints%3D%5B%5D%3BfontSize%3D13%3BfontColor%3D%233D3D3
[...]
+ <mxGeometry x="0.0571" y="3" relative="1" as="geometry">
+ <mxPoint as="offset" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="RSygPqoX0ETCJNmXeyCP-32" value=""
style="endArrow=classic;html=1;rounded=0;fontSize=14;strokeColor=#001DBC;strokeWidth=2;entryX=0.5;entryY=1;entryDx=0;entryDy=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;fillColor=#0050ef;sketch=1;fontFamily=Comic
Sans MS;" edge="1" parent="1" source="RSygPqoX0ETCJNmXeyCP-26"
target="RSygPqoX0ETCJNmXeyCP-10">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <mxPoint x="93.62" y="470" as="sourcePoint" />
+ <mxPoint x="273.62" y="400" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="RSygPqoX0ETCJNmXeyCP-33" value=""
style="endArrow=open;startArrow=open;html=1;rounded=0;fontSize=14;strokeColor=#007FFF;strokeWidth=2;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;endFill=0;startFill=0;fillColor=#0050ef;sketch=1;fontFamily=Comic
Sans MS;" edge="1" parent="1" source="RSygPqoX0ETCJNmXeyCP-5"
target="RSygPqoX0ETCJNmXeyCP-25">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <mxPoint x="70" y="280" as="sourcePoint" />
+ <mxPoint x="120" y="230" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="RSygPqoX0ETCJNmXeyCP-34" value=""
style="endArrow=open;startArrow=open;html=1;rounded=0;fontSize=14;strokeColor=#007FFF;strokeWidth=2;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;startFill=0;endFill=0;fillColor=#0050ef;sketch=1;fontFamily=Comic
Sans MS;" edge="1" parent="1" source="RSygPqoX0ETCJNmXeyCP-7"
target="RSygPqoX0ETCJNmXeyCP-25">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <mxPoint x="160" y="360" as="sourcePoint" />
+ <mxPoint x="267" y="259.9999999999999" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="RSygPqoX0ETCJNmXeyCP-35" value=""
style="endArrow=open;startArrow=open;html=1;rounded=0;fontSize=14;strokeColor=#007FFF;strokeWidth=2;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;startFill=0;endFill=0;fillColor=#0050ef;sketch=1;fontFamily=Comic
Sans MS;" edge="1" parent="1" source="RSygPqoX0ETCJNmXeyCP-10"
target="RSygPqoX0ETCJNmXeyCP-25">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <mxPoint x="310" y="360" as="sourcePoint" />
+ <mxPoint x="267" y="259.9999999999999" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="RSygPqoX0ETCJNmXeyCP-44" value="<b
style=""><font color="#cc0000">Pegasus protocol
RPC</font></b>"
style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=13;fontColor=#3D3D3D;labelBackgroundColor=none;fontFamily=Comic
Sans MS;fontStyle=2" vertex="1" connectable="0" parent="1">
+ <mxGeometry x="257.00425838513024" y="410.00485027021057"
as="geometry" />
+ </mxCell>
+ <mxCell id="RSygPqoX0ETCJNmXeyCP-45" value="heartbeat"
style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=13;fontColor=#3D3D3D;fontFamily=Comic
Sans MS;" vertex="1" parent="1">
+ <mxGeometry x="225" y="260" width="80" height="30" as="geometry" />
+ </mxCell>
+ <mxCell id="RSygPqoX0ETCJNmXeyCP-48" value="Redis Proxy 0"
style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=14;fontFamily=Comic
Sans MS;fontStyle=1" vertex="1" parent="1">
+ <mxGeometry x="224" y="480" width="120" height="30" as="geometry" />
+ </mxCell>
+ <mxCell id="RSygPqoX0ETCJNmXeyCP-49" value="Redis Lib"
style="shape=umlActor;verticalLabelPosition=bottom;verticalAlign=top;html=1;outlineConnect=0;fontFamily=Comic
Sans MS;fontStyle=1;sketch=1;curveFitting=1;jiggle=2;" vertex="1" parent="1">
+ <mxGeometry x="560" y="410" width="30" height="60" as="geometry" />
+ </mxCell>
+ <mxCell id="RSygPqoX0ETCJNmXeyCP-52" value=""
style="endArrow=classic;html=1;rounded=0;fontSize=14;strokeColor=#001DBC;strokeWidth=2;fillColor=#0050ef;sketch=1;fontFamily=Comic
Sans MS;exitX=0;exitY=0.3333333333333333;exitDx=0;exitDy=0;exitPerimeter=0;"
edge="1" parent="1" source="RSygPqoX0ETCJNmXeyCP-49">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <mxPoint x="262" y="460" as="sourcePoint" />
+ <mxPoint x="360" y="480" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="RSygPqoX0ETCJNmXeyCP-53" value="<span
style="color: rgba(0, 0, 0, 0); font-size: 0px; text-align: start;
background-color: rgb(248, 249,
250);">%3CmxGraphModel%3E%3Croot%3E%3CmxCell%20id%3D%220%22%2F%3E%3CmxCell%20id%3D%221%22%20parent%3D%220%22%2F%3E%3CmxCell%20id%3D%222%22%20value%3D%22R%2FW%20request%22%20style%3D%22edgeLabel%3Bhtml%3D1%3Balign%3Dcenter%3BverticalAlign%3Dmiddle%3Bresizable%3D0%3Bpoints%3D%5B%5D%3BfontSize%3D13%3BfontColor%3D%233D3D3
[...]
+ <mxGeometry x="0.0571" y="3" relative="1" as="geometry">
+ <mxPoint as="offset" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="RSygPqoX0ETCJNmXeyCP-54" value="<b
style=""><font color="#cc0000">Redis protocol
RPC</font></b>"
style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=13;fontColor=#3D3D3D;labelBackgroundColor=none;fontFamily=Comic
Sans MS;fontStyle=2" vertex="1" connectable="0" parent="1">
+ <mxGeometry x="440.00425838513024" y="440.00485027021057"
as="geometry" />
+ </mxCell>
+ <mxCell id="RSygPqoX0ETCJNmXeyCP-58" value="Redis Proxy 1"
style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=14;fontFamily=Comic
Sans MS;fontStyle=1" vertex="1" parent="1">
+ <mxGeometry x="240.5" y="505" width="120" height="30" as="geometry"
/>
+ </mxCell>
+ <mxCell id="RSygPqoX0ETCJNmXeyCP-59" value="Redis Proxy 2"
style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=14;fontFamily=Comic
Sans MS;fontStyle=1" vertex="1" parent="1">
+ <mxGeometry x="258.5" y="525" width="120" height="30" as="geometry"
/>
+ </mxCell>
+ </root>
+ </mxGraphModel>
+ </diagram>
</mxfile>
diff --git a/assets/images/redis_proxy_arch.png
b/assets/images/redis_proxy_arch.png
index 49c390c1..94b1438f 100644
Binary files a/assets/images/redis_proxy_arch.png and
b/assets/images/redis_proxy_arch.png differ
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]