龙空技术网

Redis 实现附近的人

程序员有话说 1268

前言:

目前看官们对“php附近的人”大概比较关怀,小伙伴们都需要了解一些“php附近的人”的相关知识。那么小编在网摘上汇集了一些关于“php附近的人””的相关文章,希望姐妹们能喜欢,咱们一起来了解一下吧!

利用 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 文档 阅读详情。

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

标签: #php附近的人