如何巧妙运用Redis的Geosptial、Hypeloglog、Bitmap、Bloom Filter?
- 内容介绍
- 文章标签
- 相关推荐
数据往往不是单纯的键值对,而是带着形状、计数、状态和判断的更多维信息。Redis 的四种较高级数据结构——Geospatial、 HyperLogLog、Bitmap 与 Bloom Filter——正是为满足这一些繁杂需求而生。本文将以一种近乎“
Geospatial:让地理信息像玩具一样摆动
想象一下 你正在构建一个共享单车平台,需要实时查询用户附近的可用车辆。传统方式数据库要跑一遍 GIS 引擎, 性价比超高。 耗时又较大;而 Redis 的 Geo 命令,只需几行代码就能完成。

核心命令与实现细节
geoadd key lon lat member,话说回来.….
把经纬度和名字绑定到一个有序集合中,ZSET 的分数实际情况是是基于 GeoHash 算法计算得到的地理距离值。由于 ZSET 本身支持按分数排序和范围查询,Geo 命令借此实现了较高效的空间范围检索,出道即巅峰。。
实战示例:找出附近的人
geoadd city:points 116.407526 39.904030 北京 geoadd city:points 121.473701 31.230416 上海 geoadd city:points 114.057868 22.543096 较深圳 # 查询北京附近半径50公里内的人 georadius city:points 116.407526 39.904030 50 km WITHDIST WITHCOORD COUNT 10,KTV你。
返回最终还是结果是会包含成员名、 距离以及坐标,让你能够直观判断谁离你最近。
HyperLogLog:较大规模计数的较小智囊
当你需要统计用户访问量、 注册人数等基数,却又不想占用过更多内存时HyperLogLog 是你的最佳伙伴。 弯道超车。 它采用概率算法,用固定较大较小即可估算百万级别的数据集。
数据往往不是单纯的键值对,而是带着形状、计数、状态和判断的更多维信息。Redis 的四种较高级数据结构——Geospatial、 HyperLogLog、Bitmap 与 Bloom Filter——正是为满足这一些繁杂需求而生。本文将以一种近乎“
Geospatial:让地理信息像玩具一样摆动
想象一下 你正在构建一个共享单车平台,需要实时查询用户附近的可用车辆。传统方式数据库要跑一遍 GIS 引擎, 性价比超高。 耗时又较大;而 Redis 的 Geo 命令,只需几行代码就能完成。

核心命令与实现细节
geoadd key lon lat member,话说回来.….
把经纬度和名字绑定到一个有序集合中,ZSET 的分数实际情况是是基于 GeoHash 算法计算得到的地理距离值。由于 ZSET 本身支持按分数排序和范围查询,Geo 命令借此实现了较高效的空间范围检索,出道即巅峰。。
实战示例:找出附近的人
geoadd city:points 116.407526 39.904030 北京 geoadd city:points 121.473701 31.230416 上海 geoadd city:points 114.057868 22.543096 较深圳 # 查询北京附近半径50公里内的人 georadius city:points 116.407526 39.904030 50 km WITHDIST WITHCOORD COUNT 10,KTV你。
返回最终还是结果是会包含成员名、 距离以及坐标,让你能够直观判断谁离你最近。
HyperLogLog:较大规模计数的较小智囊
当你需要统计用户访问量、 注册人数等基数,却又不想占用过更多内存时HyperLogLog 是你的最佳伙伴。 弯道超车。 它采用概率算法,用固定较大较小即可估算百万级别的数据集。

