jjzjj

GEORADIUS

全部标签

redis - 在用于 Redis 的 Lettuce(4.x) 中如何减少往返次数并将一个命令的输出用作另一个命令的输入,尤其是对于 Georadius

我看过这个passresultstoanothercommandinredis并通过命令行使用此命令效果很好:src/redis-clikeys'*'|xargssrc/redis-climget但是我们如何通过Lettuce实现相同的效果(我开始尝试4.0.2.Final)在以下情况下,解决此问题也尤为重要:假设我们正在使用地理定位功能,并且我们添加了一组“我的位置类别”的位置使用GEOADDGEOADD"category-1"8.663877549.5282537"location-id:1"8.379628148.9978127"location-id:2"8.66535149.

redis - 为什么这个 GEORADIUS 对 redis 的调用不起作用?

将x添加到mytest127.0.0.1:6379>geoaddmytest-78.4538.13x(integer)1尝试在x的50.000公里范围内找到点:127.0.0.1:6379>georadiusmytest72.819.1350000km(emptylistorset)将y添加到我的测试中:127.0.0.1:6379>geoaddmytest72.819.13y(integer)1计算x和y之间的距离:127.0.0.1:6379>geodistmytestxykm"12979.3623"如果(4)发现x和y之间的距离只有12979公里,为什么(2)是空集?

redis - 为什么这个 GEORADIUS 对 redis 的调用不起作用?

将x添加到mytest127.0.0.1:6379>geoaddmytest-78.4538.13x(integer)1尝试在x的50.000公里范围内找到点:127.0.0.1:6379>georadiusmytest72.819.1350000km(emptylistorset)将y添加到我的测试中:127.0.0.1:6379>geoaddmytest72.819.13y(integer)1计算x和y之间的距离:127.0.0.1:6379>geodistmytestxykm"12979.3623"如果(4)发现x和y之间的距离只有12979公里,为什么(2)是空集?

redis - 使用 redis 进行 gps 位置跟踪的最佳方法是什么

我是redis的新手,正在考虑实现一些项目以熟悉它。我想到的一个有趣的项目是使用redis作为实时gps位置的缓存。唯一让我感到困惑的部分是它的实现。我读到了redia对地理空间数据的支持,但是让我们看看我是否想继续根据某个键更新位置点,这似乎是不可能的。我开始使用的一种方法是使用散列结构来存储需要跟踪的设备的纬度和经度,并不断设置它的值,这反过来会更新值,并将所有这些散列保存在一个集合中.但这似乎不是一种隐藏的方法,它也不允许我使用redis提供的地理空间查询。有关如何以有效方式实现它的任何线索。 最佳答案 您可以简单地在具有不同

redis - 使用 redis 进行 gps 位置跟踪的最佳方法是什么

我是redis的新手,正在考虑实现一些项目以熟悉它。我想到的一个有趣的项目是使用redis作为实时gps位置的缓存。唯一让我感到困惑的部分是它的实现。我读到了redia对地理空间数据的支持,但是让我们看看我是否想继续根据某个键更新位置点,这似乎是不可能的。我开始使用的一种方法是使用散列结构来存储需要跟踪的设备的纬度和经度,并不断设置它的值,这反过来会更新值,并将所有这些散列保存在一个集合中.但这似乎不是一种隐藏的方法,它也不允许我使用redis提供的地理空间查询。有关如何以有效方式实现它的任何线索。 最佳答案 您可以简单地在具有不同

go - 如何使用redis georadius命令golang

我正在使用Go语言进行开发并且对它非常陌生。我想使用redisGEORADIUS命令并取回包括距离在内的结果。我现在已经使用了两个包radix.v2和redigo来尝试获得结果,但并不愉快。我使用SET和GET等简单命令没有问题。任何帮助将不胜感激。编辑:添加代码:-)packagemainimport("fmt""github.com/mediocregopher/radix.v2/redis"//"reflect""encoding/json")var(client*redis.Client)typeFacilitystruct{IdstringDiststring}funcmai

Redis georadius 但排序顺序不同

我正在使用Redis来存储和获取有关用户的有趣信息,并将其显示为提要。假设我需要获取给定半径R(WITHDISTance)内的所有列表,但按时间倒序排序,而不是按距离排序(与redisGEORADIUS命令一样)。更具体地说,最近的列表(半径为R)应该在顶部,即使它是所有列表中最远的。是否有可能单独使用geoset来做到这一点?否则我如何使用一些redis数据结构组合来实现这一点?寻找一些干净高效的方法 最佳答案 您需要执行半径查询并将结果与​​另一个具有相同元素但分数是时间戳的排序集相交。然后,以相反的顺序对结果相交进行分页。

redis - 如何在 redis 中获得与 GEORADIUS 匹配的所有结果?

当执行GEORADIUS时,我可以提供一个COUNT选项,但我如何指定无限计数?也就是说,我想获得与我的地理空间查询相匹配的所有结果。最坏的情况我可以提供高得离谱的COUNT,但我认为会有一些选择。 最佳答案 要实现这一点,请不要指定COUNT选项。默认情况下,Redis返回所有匹配结果。GEORADIUSkey10121000km 关于redis-如何在redis中获得与GEORADIUS匹配的所有结果?,我们在StackOverflow上找到一个类似的问题:

data-structures - 具有一个 ZSET 的 Redis GEORADIUS 与许多特定大小的 ZSET

什么会更快,一个带有地理数据的大ZSET,我将在其中使用GEORADIUS查询100米半径或很多ZSET,每个ZSET负责覆盖整个世界的100mX100m正方形?并以这100m的正方形命名,例如:left_corner1_49_2440000_28_5010000left_corner2_49_2450000_28_5010000.......并且将所有100米都放在组内的右侧和底部。因此,在搜索最近点时,我将省略gps中的冗余数字,例如:49.2440408,28.5011694将变为49.2440000、28.5010000这样我就可以知道ZSETS的名称,只需以100米的精度获取

redis georadius源码分析与性能优化

原文地址:https://blog.fanscore.cn/a/51/背景最近接到一个需求,开发中使用了redisgeoradius命令取附近给定距离内的点。完工后对服务进行压测后发现georadius的性能比预期要差,因此我分析了georadius的源码,并对原始的实现方案进行了优化,总结成了本文。我们生产环境使用的redis版本为4.0.13,因此本文redis源码皆为4.0.13版本的源码redisgeo原理往redis中添加坐标的命令是GEOADDkeylongitudelatitudemember[longitudelatitudemember...],实际上redis会将经纬度转成
12