编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

Redis 实现附近的人(redis地理位置查询)

wxchong 2024-07-26 22:47:12 开源技术 19 ℃ 0 评论

利用 redis 实现附近的人功能,主要使用的是 redisgeo 数据类型,需要注意的是 redis 的版本。

软件和环境
centOS7, Redis4, phpredis3.1.4, PHP7

PHP的扩展我使用的是 phpredis ,如果你使用的是 predis 的话,请自行查找 api 文档,基本操作方法相似。

连接redis

$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
// 如果有密码的话,使用 auth

记录用户定位信息

我这里主要用 user:{id} 来做标记记录坐标信息

$redis->geoAdd("users", 116.365, 39.976, "user:1");
$redis->geoAdd("users", 116.366, 39.975, "user:2");
$redis->geoAdd("users", 116.364, 39.977, "user:3");

搜索附近的人

使用自己的坐标来搜索周边固定位置的用户

// 搜索附近 5km 的用户,并且返回距离
$options = ['WITHDIST'];
$lists = $redis->geoRadius('users', 116.36, 39.96, 5, 'km', $options);

获取用户列表

根据上述获取的列表,可以将其进行分页展示。具体可以找 phpredis 文档 阅读详情。

我这里只是讲解了一个大概的思路,在具体的业务逻辑中,做具体的处理。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表