前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Redis GEO地理位置

Redis GEO地理位置

作者头像
崔哥
发布2022-05-25 21:00:15
5230
发布2022-05-25 21:00:15
举报
文章被收录于专栏:崔哥的专栏崔哥的专栏

Redis GEO 主要用于存储地理位置信息,并对存储的信息进行操作,该功能在 Redis 3.2 版本新增。

基于此可以实现附近的人,附近的店铺等功能

代码语言:javascript
复制
$redis = new Redis();
$redis->connect("docker-redis", 6379);

//$r=$redis->geoadd('citys', 114.09981,33.585519, 'taiwei');
//$r=$redis->geoadd('citys', 114.070524,33.59067, 'dongwaitan');
//$r=$redis->geoadd('citys', 113.971066,33.577242, 'luohexi');

//两个成员之间的距离
//$r=$redis->geodist('citys', 'taiwei', 'luohexi', 'km');
//$r=$redis->geodist('citys', 'taiwei', 'dongwaitan', 'm');

//$r=$redis->geopos('citys', 'taiwei');
$r=$redis->geohash('citys', 'luohexi');

//$r=$redis->georadiusbymember('citys', 'taiwei', 500, 'km');
//$r = $redis->georadius('citys', 114.09981, 33.585519, '500', 'km', [
//    'count' => 10,
////    'store'=>'citys2',
//    'storedist'=>'citys3',
//    'desc',
////    'WITHCOORD',
////    'WITHDIST',
////    'WITHHASH'
//]);
//var_dump($redis->rawCommand('georadius', 'citys', '114', '30', '100', 'km', 'ASC'));
//删除成员
//$r=$redis->zRem('citys', 'taiwei');
var_dump($r);

有序集合

代码语言:javascript
复制
$redis = new Redis();
$redis->connect("docker-redis", 6379);

//$ok=$redis->zAdd('list', -1, 'a', -2, 'b', -3, 'c',0, 'd', 1, 'e', 2, 'f', 3, 'g');
//var_dump($ok);exit;
//$ok=$redis->zAdd('list2', -1, 'a', -2, 'b', -3, 'c');
//var_dump($ok);exit;

//$list=$redis->zRange('list', 1, 3);//分数升序,取索引1~3之间的值。b,a,d
//$list=$redis->zRange('list', 0, -1, ['withscores'=>true]);//分数升序,取全部
//$list=$redis->zRevRange('list', 1, 3);//分数降序,取索引1~3之间的值。f,e,d
//$list=$redis->zRevRange('list', 0, -1);//分数降序,取全部
//$list=$redis->zrangebyscore('list', 0, 3);//分数范围内的成员,分数从低到高排序,['d', 'e', 'f', 'g']
//$list=$redis->zRevRangeByScore('list', 3, 0);//分数范围内的成员,分数从高到低排序,['g','f', 'e', 'd']

$list=$redis->zRangeByLex('list', '-', '+');//获取全部成员

//$score=$redis->zScore('list', 'g');//取分数,3
//$count=$redis->zCount('list', -1, 1);//分数范围内的总数,start<end,3(['a', 'd', 'e'])
//$count=$redis->zCard('list');//成员总数
//var_dump($count);exit;

//$r=$redis->zRem('list', 'a');//删除a
//$r=$redis->zIncrBy('list', 10, 'g');//增加分数,一次加10,可以统计接口的访问此时

//$rank=$redis->zRank('list', 'd');//分数升序,获取某个key的排名,排名从0开始
//$rank=$redis->zRevRank('list', 'd');//分数降序,获取某个key的排名,排名从0开始
//var_dump($rank);exit;

//求交集
//$ok=$redis->zInterStore('list-list2', ['list', 'list2'], [1, 1], 'MIN');
//并集
//$ok=$redis->zUnionStore('aaa', ['list', 'list2'], [1, 1], 'MIN');
//var_dump($ok);exit;

//$ok=$redis->zRemRangeByScore('list', -3, 0);//删除 分数范围内的成员
//$ok=$redis->zRemRangeByRank('list', 0, 1);//下标参数start和stop都以0为底,0处是分数最小的那个元素。这些索引也可是负数,表示位移从最高分处开始数。例如,-1是分数最高的元素,-2是分数第二高的,依次类推。
//var_dump($ok);exit;
var_dump($list);
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 Redis
腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档