乐趣区

redis日常使用之geo

参考网址

  • redis 命令
  • php 操作 redis

环境要求

  • 首先确保已经安装 redis 并且已经启动

  • 确保 PHP 已经安装 redis 扩展

    php -m | grep redis


redis 相关命令

  • GEOADD
  • GEODIST
  • GEORADIUS
  • GEORADIUSBYMEMBER
  • GEOHASH

GEOADD

 命令详解
1. 向一个 geo 类型的有序集合中添加数据  
2. 可以传递多个参数 同时添加
3. 经纬度限制
    有效的经度介于 -180 度至 180 度之间
    有效的纬度介于 -85.05112878 度至 85.05112878 度之间
2. 返回成功添加到键中的空间元素 不包含已经存在但是更新的元素  

注意:1. 必须按照 x,y 格式 经度在前 纬度灾后  

redis 命令行使用

  • 插入数据

geoadd myplace 116.580799 39.929301 me 116.580691 39.929007 you 116.58101 39.928931 other


php 中调用

// 实例化 redis 对象
$redis = new \Redis();

// 链接 redis 本机 host 地址 默认端口号
$redis->connect('127.0.0.1', 6379);

// 插入数据
$redis->geoAdd(
    'myplace', // 键值
    116.580799, 39.929301, 'me', // 第一个元素的经纬度 以及对应名称
    116.580691,39.929007, 'you',
    116.58101, 39.928931, 'other',
);

GEOPOS

命令:GEOPOS key member [member …]

命令详解:

1. 返回一个键中给定元素的位置
2. 参数可以传递多个 
3. 返回参数每一项都由两个元素组成 第一个元素为经度 第二个元素为纬度
4. 如果给定元素不存在 返回 nil  

命令使用:

geopos myplace me you other  

PHP 中使用

// 实例化 redis 对象
$redis = new \Redis();

// 链接 redis 本机 host 地址 默认端口号
$redis->connect('127.0.0.1', 6379);

// 获取数据
$redis->geoPos(
    'myplace', // 键值
    'me', // 元素名称
    'you',
    'other',
);

GEODIST

GEORADIUS

GEORADIUSBYMEMBER

GEOHASH

退出移动版