Redis 面试题, redis 的 Geo 结构有听过吗?
Redis 面试题, redis 的 Geo 结构有听过吗?
QA
Step 1
Q:: 什么是 Redis 的 Geo 结构?
A:: Redis 的 Geo 结构是 Redis 3.2
版本引入的一种数据结构,用于处理地理空间信息。它提供了一些命令,用于存储、查询和操作地理空间坐标(经纬度),例如 GEOADD、GEODIST、GEORADIUS 和 GEORADIUSBYMEMBER。
Step 2
Q:: 如何使用 GEOADD 命令?
A:: GEOADD key longitude latitude member [longitude latitude member ...]。这个命令用于将一个或多个地理空间位置(经度、纬度、位置名称)添加到指定的 key 中。例如:GEOADD cities 13.361389 38.115556 'Palermo' 15.087269 37.502669 'Catania'
。
Step 3
Q:: GEODIST 命令有什么作用?
A:: GEODIST key member1 member2 [unit]
。这个命令用于计算两个指定位置之间的距离,单位可以是 m(米)、km(公里)、mi(英里)、ft(英尺)。例如:GEODIST cities Palermo Catania km。
Step 4
Q:: 什么是 GEORADIUS 命令?
A:: GEORADIUS key longitude latitude radius m|km|ft|mi [WITHCOORD] [WITHDIST] [WITHHASH] [COUNT count] [ASC|DESC]
。这个命令用于根据给定的经纬度坐标来查找指定半径范围内的所有位置。
Step 5
Q:: GEORADIUSBYMEMBER 命令的作用是什么?
A:: GEORADIUSBYMEMBER key member radius m|km|ft|mi [WITHCOORD] [WITHDIST] [WITHHASH] [COUNT count] [ASC|DESC]
。这个命令与 GEORADIUS 类似,但它使用已存储的成员的位置作为参考点,而不是提供的经纬度。