每日一Go-43、Go+Redis实现附近的人和场馆

张开发
2026/4/11 21:10:46 15 分钟阅读

分享文章

每日一Go-43、Go+Redis实现附近的人和场馆
很多社交APP都有附近的人和附近的店铺、骑手等功能,那么这个功能是如何实现的呢?其实是利用Redis的GEO命令。一、为什么选Redis?Redis提供了GEO系列命令,底层基于GeoHash+ZSet,有如下优势:内存级别速度支持距离、范围、排序不用自己写复杂索引特别适合的场景有:附近的人附近的店铺附近的司机/骑手二、Redis GEO核心命令命令作用GEOADD添加位置GEOPOS查询坐标GETDIST计算距离GEORADIUS按坐标查附近半径内的人GEORADIUSBYMEMBER按某人查附近GEOSEARCH功能和GEORADIUS一样,但是可以知道查询范围为长方形区域新版的redis推荐用GETSEARCH,而不是GEORADIUS。三、直接写代码吧3.1 准备全局Redis客户端internal/global/redis.go/* generated by comer,https://github.com/imoowi/comer Copyright © 2023 junsimpleyuan@gmail.com */packageglobalimport("github.com/redis/go-redis/v9""github.com/spf13/cast""github.com/spf13/viper""go.uber.org/zap")// 全局Redis客户端varRedis*redis.Client// 初始化redisfuncinitRedis(){addr:=viper.GetString("redis.addr")ifaddr==""{panic("请在配置文件里配置【redis.addr")}pass:=viper.GetString("redis.password")ifpass==""{panic(

更多文章