pip install redis
import redis
class RedisCtrl(object):
@staticmethod
def connect(config):
pool = redis.ConnectionPool(
host=config['host'],
db=config['db'],
port=config['port'],
password=config['password'],
)
return redis.StrictRedis(connection_pool=pool)
rd = RedisCtrl.connect({
"db": 1,
"port": "6379",
"password": "password",
"host": "",
})
rd.geoadd(name="集合名称", values=["经度", "维度", "地址名称"])
values=[经度1, 维度1, 地址名称1, 经度2, 维度2, 地址名称2, 经度3, 纬度3, 地址名称3......]
。result = rd.geopos("集合名称", "地址名称1", "地址名称2")
print(result) # [(地址1的经度, 地址1的维度), (地址2的经度, 地址2的维度)]
None
。result = rd.geopos("集合名称", "错误名称1", "错误名称2")
print(result) # [None, None]
rd.geodist("集合名称", "地址名称1", "地址名称2", unit="km")
("m": 米, "km": 千米, "mi": 英里, "ft": 英尺)
, 默认值为m
。result = rd.georadius(name="集合名称", longitude="经度", latitude="维度", radius="半径距离", unit="半径单位",
sort='ASC', count=10, withdist=True, withcoord=True)
print(result) # [[b'地址名称', 距离, (经度, 维度)], [b'shanghai', 0.1774, (121.4813420176506, 31.235159732038248)]]
ASC
由近到远, DESC
由远到近。注意, 返回的数据其中的地址名称是
byte
类型的, 使用时需要decode('utf-8)
处理。