7
7
8
8
< meta name ="viewport " content ="width=device-width, initial-scale=1.0 " />
9
9
10
- < title > redisproxy — redisproxy 0.0.2 文档</ title >
10
+ < title > redishelper — redishelper 0.0.2 文档</ title >
11
11
12
12
13
13
41
41
< link rel ="index " title ="索引 " href ="genindex.html " />
42
42
< link rel ="search " title ="搜索 " href ="search.html " />
43
43
< link rel ="next " title ="0.0.2 " href ="CHANGELOG.html " />
44
- < link rel ="prev " title ="Welcome to redisproxy ’s documentation! " href ="index.html " />
44
+ < link rel ="prev " title ="Welcome to redishelper ’s documentation! " href ="index.html " />
45
45
</ head >
46
46
47
47
< body class ="wy-body-for-nav ">
55
55
56
56
57
57
58
- < a href ="index.html " class ="icon icon-home "> redisproxy
58
+ < a href ="index.html " class ="icon icon-home "> redishelper
59
59
60
60
61
61
94
94
< li class ="toctree-l1 current "> < a class ="current reference internal " href ="# "> 介绍</ a > < ul >
95
95
< li class ="toctree-l2 "> < a class ="reference internal " href ="#id1 "> 特性</ a > </ li >
96
96
< li class ="toctree-l2 "> < a class ="reference internal " href ="#id2 "> 使用</ a > < ul >
97
- < li class ="toctree-l3 "> < a class ="reference internal " href ="#id3 "> RedisProxy的使用</ a > </ li >
98
- < li class ="toctree-l3 "> < a class ="reference internal " href ="#id4 "> 生产者消费者模式</ a > </ li >
97
+ < li class ="toctree-l3 "> < a class ="reference internal " href ="#redisproxy "> RedisProxy的使用</ a > </ li >
98
+ < li class ="toctree-l3 "> < a class ="reference internal " href ="#id3 "> 生产者消费者模式</ a > </ li >
99
99
</ ul >
100
100
</ li >
101
- < li class ="toctree-l2 "> < a class ="reference internal " href ="#id5 "> 安装</ a > </ li >
101
+ < li class ="toctree-l2 "> < a class ="reference internal " href ="#id4 "> 安装</ a > </ li >
102
102
</ ul >
103
103
</ li >
104
104
< li class ="toctree-l1 "> < a class ="reference internal " href ="CHANGELOG.html "> 0.0.2</ a > </ li >
119
119
< nav class ="wy-nav-top " aria-label ="top navigation ">
120
120
121
121
< i data-toggle ="wy-nav-top " class ="fa fa-bars "> </ i >
122
- < a href ="index.html "> redisproxy </ a >
122
+ < a href ="index.html "> redishelper </ a >
123
123
124
124
</ nav >
125
125
152
152
153
153
< li > < a href ="index.html " class ="icon icon-home "> </ a > »</ li >
154
154
155
- < li > redisproxy </ li >
155
+ < li > redishelper </ li >
156
156
157
157
158
158
< li class ="wy-breadcrumbs-aside ">
171
171
< div role ="main " class ="document " itemscope ="itemscope " itemtype ="http://schema.org/Article ">
172
172
< div itemprop ="articleBody ">
173
173
174
- < div class ="section " id ="redisproxy ">
175
- < h1 > redisproxy < a class ="headerlink " href ="#redisproxy " title ="永久链接至标题 "> ¶</ a > </ h1 >
174
+ < div class ="section " id ="redishelper ">
175
+ < h1 > redishelper < a class ="headerlink " href ="#redishelper " title ="永久链接至标题 "> ¶</ a > </ h1 >
176
176
< p > 提供redis客户端的代理对象功能.本项目代理的对象是< a class ="reference external " href ="https://github.com/redis/redis-py "> redis-py</ a > 中的四种客户端</ p >
177
177
< ul class ="simple ">
178
178
< li > < p > < code class ="docutils literal notranslate "> < span class ="pre "> redis.Redis</ span > </ code > </ p > </ li >
@@ -184,14 +184,14 @@ <h1>redisproxy<a class="headerlink" href="#redisproxy" title="永久链接至标
184
184
< h2 > 特性< a class ="headerlink " href ="#id1 " title ="永久链接至标题 "> ¶</ a > </ h2 >
185
185
< ul class ="simple ">
186
186
< li > < p > 提供了统一的代理对象< code class ="docutils literal notranslate "> < span class ="pre "> RedisProxy</ span > </ code > 用于代理< code class ="docutils literal notranslate "> < span class ="pre "> redis.Redis</ span > </ code > ,< code class ="docutils literal notranslate "> < span class ="pre "> redis.cluster.RedisCluster</ span > </ code > ,< code class ="docutils literal notranslate "> < span class ="pre "> redis.asyncio.Redis</ span > </ code > 或< code class ="docutils literal notranslate "> < span class ="pre "> redis.asyncio.cluster.RedisCluster</ span > </ code > </ p > </ li >
187
- < li > < p > 针对生产者消费者模式提供了专用代理对象< code class ="docutils literal notranslate "> < span class ="pre "> ChannelConsumerProxy </ span > </ code > ,< code class ="docutils literal notranslate "> < span class ="pre "> ChannelProducerProxy </ span > </ code > ,< code class ="docutils literal notranslate "> < span class ="pre "> QueueConsumerProxy </ span > </ code > ,< code class ="docutils literal notranslate "> < span class ="pre "> QueueProducerProxy </ span > </ code > ,< code class ="docutils literal notranslate "> < span class ="pre "> StreamConsumerProxy </ span > </ code > ,< code class ="docutils literal notranslate "> < span class ="pre "> StreamProducerProxy </ span > </ code > </ p > </ li >
187
+ < li > < p > 针对生产者消费者模式提供了专用代理对象< code class ="docutils literal notranslate "> < span class ="pre "> ChannelConsumerHelper </ span > </ code > ,< code class ="docutils literal notranslate "> < span class ="pre "> ChannelProducerHelper </ span > </ code > ,< code class ="docutils literal notranslate "> < span class ="pre "> QueueConsumerHelper </ span > </ code > ,< code class ="docutils literal notranslate "> < span class ="pre "> QueueProducerHelper </ span > </ code > ,< code class ="docutils literal notranslate "> < span class ="pre "> StreamConsumerPHelper </ span > </ code > ,< code class ="docutils literal notranslate "> < span class ="pre "> StreamProducerHelper </ span > </ code > </ p > </ li >
188
188
< li > < p > 生产者消费者提供了进一步的封装,可以通过上下文管理连接</ p > </ li >
189
189
</ ul >
190
190
</ div >
191
191
< div class ="section " id ="id2 ">
192
192
< h2 > 使用< a class ="headerlink " href ="#id2 " title ="永久链接至标题 "> ¶</ a > </ h2 >
193
- < div class ="section " id ="id3 ">
194
- < h3 > RedisProxy的使用< a class ="headerlink " href ="#id3 " title ="永久链接至标题 "> ¶</ a > </ h3 >
193
+ < div class ="section " id ="redisproxy ">
194
+ < h3 > RedisProxy的使用< a class ="headerlink " href ="#redisproxy " title ="永久链接至标题 "> ¶</ a > </ h3 >
195
195
< p > 我们可以使用< code class ="docutils literal notranslate "> < span class ="pre "> RedisProxy</ span > </ code > 延后初始化要代理的对象,从而避免客户端对象在各个函数之间传来传去.</ p >
196
196
< div class ="highlight-python notranslate "> < div class ="highlight "> < pre > < span > </ span >
197
197
< span class ="n "> rediscli</ span > < span class ="o "> =</ span > < span class ="n "> RedisProxy</ span > < span class ="p "> ()</ span >
@@ -219,8 +219,8 @@ <h3>RedisProxy的使用<a class="headerlink" href="#id3" title="永久链接至
219
219
</ div >
220
220
< p > 这样我们在写程序是也可以有接口提示.只有用到< code class ="docutils literal notranslate "> < span class ="pre "> pubsub</ span > </ code > ,< code class ="docutils literal notranslate "> < span class ="pre "> execute_command</ span > </ code > 或者< code class ="docutils literal notranslate "> < span class ="pre "> pipeline</ span > </ code > 的少数场景时需要指定具体类型.</ p >
221
221
</ div >
222
- < div class ="section " id ="id4 ">
223
- < h3 > 生产者消费者模式< a class ="headerlink " href ="#id4 " title ="永久链接至标题 "> ¶</ a > </ h3 >
222
+ < div class ="section " id ="id3 ">
223
+ < h3 > 生产者消费者模式< a class ="headerlink " href ="#id3 " title ="永久链接至标题 "> ¶</ a > </ h3 >
224
224
< p > 生产者消费者模式提供了基本统一的接口设计</ p >
225
225
< ul class ="simple ">
226
226
< li > < p > < code class ="docutils literal notranslate "> < span class ="pre "> ConsumerProtocol</ span > </ code > 通用的同步消费者接口</ p > </ li >
@@ -234,7 +234,7 @@ <h3>生产者消费者模式<a class="headerlink" href="#id4" title="永久链
234
234
< blockquote >
235
235
< div > < p > 同步生产者</ p >
236
236
</ div > </ blockquote >
237
- < div class ="highlight-python notranslate "> < div class ="highlight "> < pre > < span > </ span > < span class ="n "> qp</ span > < span class ="o "> =</ span > < span class ="n "> cast</ span > < span class ="p "> (</ span > < span class ="n "> StreamProducerProtocol</ span > < span class ="p "> ,</ span > < span class ="n "> StreamProducerProxy </ span > < span class ="o "> .</ span > < span class ="n "> from_proxy</ span > < span class ="p "> (</ span > < span class ="n "> rediscli</ span > < span class ="p "> ,</ span > < span class ="n "> maxlen</ span > < span class ="o "> =</ span > < span class ="mi "> 20</ span > < span class ="p "> ))</ span >
237
+ < div class ="highlight-python notranslate "> < div class ="highlight "> < pre > < span > </ span > < span class ="n "> qp</ span > < span class ="o "> =</ span > < span class ="n "> cast</ span > < span class ="p "> (</ span > < span class ="n "> StreamProducerProtocol</ span > < span class ="p "> ,</ span > < span class ="n "> StreamProducerHelper </ span > < span class ="o "> .</ span > < span class ="n "> from_proxy</ span > < span class ="p "> (</ span > < span class ="n "> rediscli</ span > < span class ="p "> ,</ span > < span class ="n "> maxlen</ span > < span class ="o "> =</ span > < span class ="mi "> 20</ span > < span class ="p "> ))</ span >
238
238
< span class ="k "> with</ span > < span class ="n "> qp</ span > < span class ="o "> .</ span > < span class ="n "> mount</ span > < span class ="p "> ()</ span > < span class ="k "> as</ span > < span class ="n "> producer</ span > < span class ="p "> :</ span >
239
239
< span class ="k "> for</ span > < span class ="n "> i</ span > < span class ="ow "> in</ span > < span class ="nb "> range</ span > < span class ="p "> (</ span > < span class ="mi "> 10</ span > < span class ="p "> ):</ span >
240
240
< span class ="n "> producer</ span > < span class ="o "> .</ span > < span class ="n "> publish</ span > < span class ="p "> (</ span > < span class ="n "> topic</ span > < span class ="p "> ,</ span > < span class ="n "> value</ span > < span class ="p "> )</ span >
@@ -243,7 +243,7 @@ <h3>生产者消费者模式<a class="headerlink" href="#id4" title="永久链
243
243
< blockquote >
244
244
< div > < p > 异步生产者</ p >
245
245
</ div > </ blockquote >
246
- < div class ="highlight-python notranslate "> < div class ="highlight "> < pre > < span > </ span > < span class ="n "> qp</ span > < span class ="o "> =</ span > < span class ="n "> cast</ span > < span class ="p "> (</ span > < span class ="n "> AioStreamProducerProtocol</ span > < span class ="p "> ,</ span > < span class ="n "> StreamProducerProxy </ span > < span class ="o "> .</ span > < span class ="n "> from_proxy</ span > < span class ="p "> (</ span > < span class ="n "> rediscli</ span > < span class ="p "> ,</ span > < span class ="n "> maxlen</ span > < span class ="o "> =</ span > < span class ="mi "> 20</ span > < span class ="p "> ))</ span >
246
+ < div class ="highlight-python notranslate "> < div class ="highlight "> < pre > < span > </ span > < span class ="n "> qp</ span > < span class ="o "> =</ span > < span class ="n "> cast</ span > < span class ="p "> (</ span > < span class ="n "> AioStreamProducerProtocol</ span > < span class ="p "> ,</ span > < span class ="n "> StreamProducerHelper </ span > < span class ="o "> .</ span > < span class ="n "> from_proxy</ span > < span class ="p "> (</ span > < span class ="n "> rediscli</ span > < span class ="p "> ,</ span > < span class ="n "> maxlen</ span > < span class ="o "> =</ span > < span class ="mi "> 20</ span > < span class ="p "> ))</ span >
247
247
< span class ="k "> async</ span > < span class ="k "> with</ span > < span class ="n "> qp</ span > < span class ="o "> .</ span > < span class ="n "> mount</ span > < span class ="p "> ()</ span > < span class ="k "> as</ span > < span class ="n "> producer</ span > < span class ="p "> :</ span >
248
248
< span class ="k "> for</ span > < span class ="n "> i</ span > < span class ="ow "> in</ span > < span class ="nb "> range</ span > < span class ="p "> (</ span > < span class ="mi "> 10</ span > < span class ="p "> ):</ span >
249
249
< span class ="k "> await</ span > < span class ="n "> producer</ span > < span class ="o "> .</ span > < span class ="n "> publish</ span > < span class ="p "> (</ span > < span class ="n "> topic</ span > < span class ="p "> ,</ span > < span class ="n "> value</ span > < span class ="p "> )</ span >
@@ -252,7 +252,7 @@ <h3>生产者消费者模式<a class="headerlink" href="#id4" title="永久链
252
252
< blockquote >
253
253
< div > < p > 同步消费者</ p >
254
254
</ div > </ blockquote >
255
- < div class ="highlight-python notranslate "> < div class ="highlight "> < pre > < span > </ span > < span class ="n "> qc</ span > < span class ="o "> =</ span > < span class ="n "> cast</ span > < span class ="p "> (</ span > < span class ="n "> ConsumerProtocol</ span > < span class ="p "> ,</ span > < span class ="n "> QueueConsumerProxy </ span > < span class ="o "> .</ span > < span class ="n "> from_proxy</ span > < span class ="p "> (</ span > < span class ="n "> rediscli</ span > < span class ="p "> ,</ span > < span class ="n "> topics</ span > < span class ="p "> ))</ span >
255
+ < div class ="highlight-python notranslate "> < div class ="highlight "> < pre > < span > </ span > < span class ="n "> qc</ span > < span class ="o "> =</ span > < span class ="n "> cast</ span > < span class ="p "> (</ span > < span class ="n "> ConsumerProtocol</ span > < span class ="p "> ,</ span > < span class ="n "> QueueConsumerHelper </ span > < span class ="o "> .</ span > < span class ="n "> from_proxy</ span > < span class ="p "> (</ span > < span class ="n "> rediscli</ span > < span class ="p "> ,</ span > < span class ="n "> topics</ span > < span class ="p "> ))</ span >
256
256
257
257
< span class ="k "> with</ span > < span class ="n "> qc</ span > < span class ="o "> .</ span > < span class ="n "> watch</ span > < span class ="p "> ()</ span > < span class ="k "> as</ span > < span class ="n "> records</ span > < span class ="p "> :</ span >
258
258
< span class ="k "> for</ span > < span class ="n "> record</ span > < span class ="ow "> in</ span > < span class ="n "> records</ span > < span class ="p "> :</ span >
@@ -262,7 +262,7 @@ <h3>生产者消费者模式<a class="headerlink" href="#id4" title="永久链
262
262
< blockquote >
263
263
< div > < p > 异步消费者</ p >
264
264
</ div > </ blockquote >
265
- < div class ="highlight-python notranslate "> < div class ="highlight "> < pre > < span > </ span > < span class ="n "> qc</ span > < span class ="o "> =</ span > < span class ="n "> cast</ span > < span class ="p "> (</ span > < span class ="n "> AioConsumerProtocol</ span > < span class ="p "> ,</ span > < span class ="n "> QueueConsumerProxy </ span > < span class ="o "> .</ span > < span class ="n "> from_proxy</ span > < span class ="p "> (</ span > < span class ="n "> rediscli</ span > < span class ="p "> ,</ span > < span class ="n "> topics</ span > < span class ="p "> ))</ span >
265
+ < div class ="highlight-python notranslate "> < div class ="highlight "> < pre > < span > </ span > < span class ="n "> qc</ span > < span class ="o "> =</ span > < span class ="n "> cast</ span > < span class ="p "> (</ span > < span class ="n "> AioConsumerProtocol</ span > < span class ="p "> ,</ span > < span class ="n "> QueueConsumerHelper </ span > < span class ="o "> .</ span > < span class ="n "> from_proxy</ span > < span class ="p "> (</ span > < span class ="n "> rediscli</ span > < span class ="p "> ,</ span > < span class ="n "> topics</ span > < span class ="p "> ))</ span >
266
266
267
267
< span class ="k "> async</ span > < span class ="k "> with</ span > < span class ="n "> qc</ span > < span class ="o "> .</ span > < span class ="n "> watch</ span > < span class ="p "> ()</ span > < span class ="k "> as</ span > < span class ="n "> records</ span > < span class ="p "> :</ span >
268
268
< span class ="k "> async</ span > < span class ="k "> for</ span > < span class ="n "> record</ span > < span class ="ow "> in</ span > < span class ="n "> records</ span > < span class ="p "> :</ span >
@@ -271,9 +271,9 @@ <h3>生产者消费者模式<a class="headerlink" href="#id4" title="永久链
271
271
</ div >
272
272
</ div >
273
273
</ div >
274
- < div class ="section " id ="id5 ">
275
- < h2 > 安装< a class ="headerlink " href ="#id5 " title ="永久链接至标题 "> ¶</ a > </ h2 >
276
- < div class ="highlight-bash notranslate "> < div class ="highlight "> < pre > < span > </ span > pip install redisproxy
274
+ < div class ="section " id ="id4 ">
275
+ < h2 > 安装< a class ="headerlink " href ="#id4 " title ="永久链接至标题 "> ¶</ a > </ h2 >
276
+ < div class ="highlight-bash notranslate "> < div class ="highlight "> < pre > < span > </ span > pip install redishelper
277
277
</ pre > </ div >
278
278
</ div >
279
279
</ div >
@@ -286,7 +286,7 @@ <h2>安装<a class="headerlink" href="#id5" title="永久链接至标题">¶</a>
286
286
< footer >
287
287
< div class ="rst-footer-buttons " role ="navigation " aria-label ="footer navigation ">
288
288
< a href ="CHANGELOG.html " class ="btn btn-neutral float-right " title ="0.0.2 " accesskey ="n " rel ="next "> 下一页 < span class ="fa fa-arrow-circle-right " aria-hidden ="true "> </ span > </ a >
289
- < a href ="index.html " class ="btn btn-neutral float-left " title ="Welcome to redisproxy ’s documentation! " accesskey ="p " rel ="prev "> < span class ="fa fa-arrow-circle-left " aria-hidden ="true "> </ span > 上一页</ a >
289
+ < a href ="index.html " class ="btn btn-neutral float-left " title ="Welcome to redishelper ’s documentation! " accesskey ="p " rel ="prev "> < span class ="fa fa-arrow-circle-left " aria-hidden ="true "> </ span > 上一页</ a >
290
290
</ div >
291
291
292
292
< hr />
0 commit comments