futriix/src/commands/geodist.json
Binbin 7af9f4b36e
Fix GEOHASH / GEODIST / GEOPOS time complexity, should be O(1) (#12445)
GEOHASH / GEODIST / GEOPOS use zsetScore to get the score, in skiplist encoding,
we use dictFind to get the score, which is O(1), same as ZSCORE command.
It is not clear why these commands had O(Log(N)), and O(N) until now.
2023-08-05 07:29:24 +03:00

92 lines
2.5 KiB
JSON

{
"GEODIST": {
"summary": "Returns the distance between two members of a geospatial index.",
"complexity": "O(1)",
"group": "geo",
"since": "3.2.0",
"arity": -4,
"function": "geodistCommand",
"command_flags": [
"READONLY"
],
"acl_categories": [
"GEO"
],
"key_specs": [
{
"flags": [
"RO",
"ACCESS"
],
"begin_search": {
"index": {
"pos": 1
}
},
"find_keys": {
"range": {
"lastkey": 0,
"step": 1,
"limit": 0
}
}
}
],
"arguments": [
{
"name": "key",
"type": "key",
"key_spec_index": 0
},
{
"name": "member1",
"type": "string"
},
{
"name": "member2",
"type": "string"
},
{
"name": "unit",
"type": "oneof",
"optional": true,
"arguments": [
{
"name": "m",
"type": "pure-token",
"token": "m"
},
{
"name": "km",
"type": "pure-token",
"token": "km"
},
{
"name": "ft",
"type": "pure-token",
"token": "ft"
},
{
"name": "mi",
"type": "pure-token",
"token": "mi"
}
]
}
],
"reply_schema": {
"oneOf": [
{
"description": "one or both of elements are missing",
"type": "null"
},
{
"description": "distance as a double (represented as a string) in the specified units",
"type": "string",
"pattern": "^[0-9]*(.[0-9]*)?$"
}
]
}
}
}