forked from huangzworks/redis
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgeoradius.html
398 lines (276 loc) · 18.7 KB
/
georadius.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
<!DOCTYPE html>
<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>GEORADIUS key longitude latitude radius m|km|ft|mi [WITHCOORD] [WITHDIST] [WITHHASH] [ASC|DESC] [COUNT count] — Redis 命令参考</title>
<script type="text/javascript" src="../_static/js/modernizr.min.js"></script>
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT:'../',
VERSION:'2019',
LANGUAGE:'None',
COLLAPSE_INDEX:false,
FILE_SUFFIX:'.html',
HAS_SOURCE: true,
SOURCELINK_SUFFIX: '.txt'
};
</script>
<script type="text/javascript" src="../_static/jquery.js"></script>
<script type="text/javascript" src="../_static/underscore.js"></script>
<script type="text/javascript" src="../_static/doctools.js"></script>
<script type="text/javascript" src="../_static/js/theme.js"></script>
<link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="GEORADIUSBYMEMBER key member radius m|km|ft|mi [WITHCOORD] [WITHDIST] [WITHHASH] [ASC|DESC] [COUNT count]" href="georadiusbymember.html" />
<link rel="prev" title="GEODIST key member1 member2 [unit]" href="geodist.html" />
</head>
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search">
<a href="../index.html" class="icon icon-home"> Redis 命令参考
</a>
<div class="version">
2019
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
<input type="text" name="q" placeholder="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../string/index.html">字符串</a></li>
<li class="toctree-l1"><a class="reference internal" href="../hash/index.html">哈希表</a></li>
<li class="toctree-l1"><a class="reference internal" href="../list/index.html">列表</a></li>
<li class="toctree-l1"><a class="reference internal" href="../set/index.html">集合</a></li>
<li class="toctree-l1"><a class="reference internal" href="../sorted_set/index.html">有序集合</a></li>
<li class="toctree-l1"><a class="reference internal" href="../hyperloglog/index.html">HyperLogLog</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="index.html">地理位置</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="geoadd.html">GEOADD</a></li>
<li class="toctree-l2"><a class="reference internal" href="geopos.html">GEOPOS</a></li>
<li class="toctree-l2"><a class="reference internal" href="geodist.html">GEODIST</a></li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">GEORADIUS</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#id1">返回值</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id2">代码示例</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="georadiusbymember.html">GEORADIUSBYMEMBER</a></li>
<li class="toctree-l2"><a class="reference internal" href="geohash.html">GEOHASH</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../bitmap/index.html">位图</a></li>
<li class="toctree-l1"><a class="reference internal" href="../database/index.html">数据库</a></li>
<li class="toctree-l1"><a class="reference internal" href="../expire/index.html">自动过期</a></li>
<li class="toctree-l1"><a class="reference internal" href="../transaction/index.html">事务</a></li>
<li class="toctree-l1"><a class="reference internal" href="../script/index.html">Lua 脚本</a></li>
<li class="toctree-l1"><a class="reference internal" href="../persistence/index.html">持久化</a></li>
<li class="toctree-l1"><a class="reference internal" href="../pubsub/index.html">发布与订阅</a></li>
<li class="toctree-l1"><a class="reference internal" href="../replication/index.html">复制</a></li>
<li class="toctree-l1"><a class="reference internal" href="../client_and_server/index.html">客户端与服务器</a></li>
<li class="toctree-l1"><a class="reference internal" href="../configure/index.html">配置选项</a></li>
<li class="toctree-l1"><a class="reference internal" href="../debug/index.html">调试</a></li>
<li class="toctree-l1"><a class="reference internal" href="../internal/index.html">内部命令</a></li>
<li class="toctree-l1"><a class="reference internal" href="../topic/index.html">功能文档</a></li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
<nav class="wy-nav-top" aria-label="top navigation">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="../index.html">Redis 命令参考</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content">
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs">
<li><a href="../index.html">Docs</a> »</li>
<li><a href="index.html">地理位置</a> »</li>
<li>GEORADIUS key longitude latitude radius m|km|ft|mi [WITHCOORD] [WITHDIST] [WITHHASH] [ASC|DESC] [COUNT count]</li>
<li class="wy-breadcrumbs-aside">
<a href="../_sources/geo/georadius.rst.txt" rel="nofollow"> View page source</a>
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<div class="section" id="georadius-key-longitude-latitude-radius-m-km-ft-mi-withcoord-withdist-withhash-asc-desc-count-count">
<span id="georadius"></span><h1>GEORADIUS key longitude latitude radius m|km|ft|mi [WITHCOORD] [WITHDIST] [WITHHASH] [ASC|DESC] [COUNT count]<a class="headerlink" href="#georadius-key-longitude-latitude-radius-m-km-ft-mi-withcoord-withdist-withhash-asc-desc-count-count" title="Permalink to this headline">¶</a></h1>
<blockquote>
<div><div class="line-block">
<div class="line">可用版本: >= 3.2.0</div>
<div class="line">时间复杂度: O(N+log(M)), 其中 N 为指定半径范围内的位置元素数量, 而 M 则是被返回位置元素的数量。</div>
</div>
</div></blockquote>
<p>以给定的经纬度为中心,
返回键包含的位置元素当中,
与中心的距离不超过给定最大距离的所有位置元素。</p>
<p>范围可以使用以下其中一个单位:</p>
<ul class="simple">
<li><code class="docutils literal"><span class="pre">m</span></code> 表示单位为米。</li>
<li><code class="docutils literal"><span class="pre">km</span></code> 表示单位为千米。</li>
<li><code class="docutils literal"><span class="pre">mi</span></code> 表示单位为英里。</li>
<li><code class="docutils literal"><span class="pre">ft</span></code> 表示单位为英尺。</li>
</ul>
<p>在给定以下可选项时,
命令会返回额外的信息:</p>
<ul class="simple">
<li><code class="docutils literal"><span class="pre">WITHDIST</span></code> :
在返回位置元素的同时,
将位置元素与中心之间的距离也一并返回。
距离的单位和用户给定的范围单位保持一致。</li>
<li><code class="docutils literal"><span class="pre">WITHCOORD</span></code> :
将位置元素的经度和维度也一并返回。</li>
<li><code class="docutils literal"><span class="pre">WITHHASH</span></code> :
以 52 位有符号整数的形式,
返回位置元素经过原始 geohash 编码的有序集合分值。
这个选项主要用于底层应用或者调试,
实际中的作用并不大。</li>
</ul>
<p>命令默认返回未排序的位置元素。
通过以下两个参数,
用户可以指定被返回位置元素的排序方式:</p>
<ul class="simple">
<li><code class="docutils literal"><span class="pre">ASC</span></code> :
根据中心的位置,
按照从近到远的方式返回位置元素。</li>
<li><code class="docutils literal"><span class="pre">DESC</span></code> :
根据中心的位置,
按照从远到近的方式返回位置元素。</li>
</ul>
<p>在默认情况下,
<code class="docutils literal"><span class="pre">GEORADIUS</span></code> 命令会返回所有匹配的位置元素。
虽然用户可以使用 <code class="docutils literal"><span class="pre">COUNT</span> <span class="pre"><count></span></code> 选项去获取前 N 个匹配元素,
但是因为命令在内部可能会需要对所有被匹配的元素进行处理,
所以在对一个非常大的区域进行搜索时,
即使只使用 <code class="docutils literal"><span class="pre">COUNT</span></code> 选项去获取少量元素,
命令的执行速度也可能会非常慢。
但是从另一方面来说,
使用 <code class="docutils literal"><span class="pre">COUNT</span></code> 选项去减少需要返回的元素数量,
对于减少带宽来说仍然是非常有用的。</p>
<div class="section" id="id1">
<h2>返回值<a class="headerlink" href="#id1" title="Permalink to this headline">¶</a></h2>
<p><code class="docutils literal"><span class="pre">GEORADIUS</span></code> 命令返回一个数组,
具体来说:</p>
<ul class="simple">
<li>在没有给定任何 <code class="docutils literal"><span class="pre">WITH</span></code> 选项的情况下,
命令只会返回一个像 <code class="docutils literal"><span class="pre">["New</span> <span class="pre">York","Milan","Paris"]</span></code> 这样的线性(linear)列表。</li>
<li>在指定了 <code class="docutils literal"><span class="pre">WITHCOORD</span></code> 、 <code class="docutils literal"><span class="pre">WITHDIST</span></code> 、 <code class="docutils literal"><span class="pre">WITHHASH</span></code> 等选项的情况下,
命令返回一个二层嵌套数组,
内层的每个子数组就表示一个元素。</li>
</ul>
<p>在返回嵌套数组时,
子数组的第一个元素总是位置元素的名字。
至于额外的信息,
则会作为子数组的后续元素,
按照以下顺序被返回:</p>
<ol class="arabic simple">
<li>以浮点数格式返回的中心与位置元素之间的距离,
单位与用户指定范围时的单位一致。</li>
<li>geohash 整数。</li>
<li>由两个元素组成的坐标,分别为经度和纬度。</li>
</ol>
<p>举个例子,
<code class="docutils literal"><span class="pre">GEORADIUS</span> <span class="pre">Sicily</span> <span class="pre">15</span> <span class="pre">37</span> <span class="pre">200</span> <span class="pre">km</span> <span class="pre">withcoord</span> <span class="pre">withdist</span></code> 这样的命令返回的每个子数组都是类似以下格式的:</p>
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="p">[</span><span class="s2">"Palermo"</span><span class="p">,</span><span class="s2">"190.4424"</span><span class="p">,[</span><span class="s2">"13.361389338970184"</span><span class="p">,</span><span class="s2">"38.115556395496299"</span><span class="p">]]</span>
</pre></div>
</div>
</div>
<div class="section" id="id2">
<h2>代码示例<a class="headerlink" href="#id2" title="Permalink to this headline">¶</a></h2>
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">redis</span><span class="o">></span> <span class="n">GEOADD</span> <span class="n">Sicily</span> <span class="mf">13.361389</span> <span class="mf">38.115556</span> <span class="s2">"Palermo"</span> <span class="mf">15.087269</span> <span class="mf">37.502669</span> <span class="s2">"Catania"</span>
<span class="p">(</span><span class="n">integer</span><span class="p">)</span> <span class="mi">2</span>
<span class="n">redis</span><span class="o">></span> <span class="n">GEORADIUS</span> <span class="n">Sicily</span> <span class="mi">15</span> <span class="mi">37</span> <span class="mi">200</span> <span class="n">km</span> <span class="n">WITHDIST</span>
<span class="mi">1</span><span class="p">)</span> <span class="mi">1</span><span class="p">)</span> <span class="s2">"Palermo"</span>
<span class="mi">2</span><span class="p">)</span> <span class="s2">"190.4424"</span>
<span class="mi">2</span><span class="p">)</span> <span class="mi">1</span><span class="p">)</span> <span class="s2">"Catania"</span>
<span class="mi">2</span><span class="p">)</span> <span class="s2">"56.4413"</span>
<span class="n">redis</span><span class="o">></span> <span class="n">GEORADIUS</span> <span class="n">Sicily</span> <span class="mi">15</span> <span class="mi">37</span> <span class="mi">200</span> <span class="n">km</span> <span class="n">WITHCOORD</span>
<span class="mi">1</span><span class="p">)</span> <span class="mi">1</span><span class="p">)</span> <span class="s2">"Palermo"</span>
<span class="mi">2</span><span class="p">)</span> <span class="mi">1</span><span class="p">)</span> <span class="s2">"13.361389338970184"</span>
<span class="mi">2</span><span class="p">)</span> <span class="s2">"38.115556395496299"</span>
<span class="mi">2</span><span class="p">)</span> <span class="mi">1</span><span class="p">)</span> <span class="s2">"Catania"</span>
<span class="mi">2</span><span class="p">)</span> <span class="mi">1</span><span class="p">)</span> <span class="s2">"15.087267458438873"</span>
<span class="mi">2</span><span class="p">)</span> <span class="s2">"37.50266842333162"</span>
<span class="n">redis</span><span class="o">></span> <span class="n">GEORADIUS</span> <span class="n">Sicily</span> <span class="mi">15</span> <span class="mi">37</span> <span class="mi">200</span> <span class="n">km</span> <span class="n">WITHDIST</span> <span class="n">WITHCOORD</span>
<span class="mi">1</span><span class="p">)</span> <span class="mi">1</span><span class="p">)</span> <span class="s2">"Palermo"</span>
<span class="mi">2</span><span class="p">)</span> <span class="s2">"190.4424"</span>
<span class="mi">3</span><span class="p">)</span> <span class="mi">1</span><span class="p">)</span> <span class="s2">"13.361389338970184"</span>
<span class="mi">2</span><span class="p">)</span> <span class="s2">"38.115556395496299"</span>
<span class="mi">2</span><span class="p">)</span> <span class="mi">1</span><span class="p">)</span> <span class="s2">"Catania"</span>
<span class="mi">2</span><span class="p">)</span> <span class="s2">"56.4413"</span>
<span class="mi">3</span><span class="p">)</span> <span class="mi">1</span><span class="p">)</span> <span class="s2">"15.087267458438873"</span>
<span class="mi">2</span><span class="p">)</span> <span class="s2">"37.50266842333162"</span>
</pre></div>
</div>
</div>
</div>
<div class="section" id="discuss">
<h2>
讨论
<a class="headerlink" href="#discuss" title="永久链接至标题">¶</a>
</h2>
<div id="disqus_thread"></div>
<script type="text/javascript">
/* * * CONFIGURATION VARIABLES: EDIT BEFORE PASTING INTO YOUR WEBPAGE * * */
var disqus_shortname = 'redis-command-cn'; // required: replace example with your forum shortname
/* * * DON'T EDIT BELOW THIS LINE * * */
(function() {
var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js';
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
})();
</script>
<noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
<a href="http://disqus.com" class="dsq-brlink">comments powered by <span class="logo-disqus">Disqus</span></a>
</div>
<!--
<div id="sponser">
<h2>赞助商</h2>
<p>我们正在寻找赞助商,有意对这个网站进行赞助的朋友请联系 [email protected] 。</p>
</div>
-->
</div>
</div>
<footer>
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
<a href="georadiusbymember.html" class="btn btn-neutral float-right" title="GEORADIUSBYMEMBER key member radius m|km|ft|mi [WITHCOORD] [WITHDIST] [WITHHASH] [ASC|DESC] [COUNT count]" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
<a href="geodist.html" class="btn btn-neutral float-left" title="GEODIST key member1 member2 [unit]" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
</div>
<hr/>
<div role="contentinfo">
<p>
© Copyright 2019, Redis
</p>
</div>
Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/rtfd/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
</section>
</div>
<script type="text/javascript">
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-53959484-7', 'auto');
ga('send', 'pageview');
</script>
</body>
</html>