七天玩转Redis | Day3、了解Redis地理位置、基数统计、位图场景

bug菌¹
优质创作者: Java、算法与数据结构技术领域
领域专家: 后端开发技术领域
2022-01-23 18:06:59

先来回顾一下,上一期我们是学了redis常用的五种类型。而这一期,主要是了解Redis的另外三种特殊的数据类型,分别为:

HyperLogLogs(基数统计), Bitmaps (位图) 和 geospatial (地理位置)。

它们分别能干啥呢?

1、HyperLogLogs(基数统计)

这个结构可以非常省内存的去统计各种计数,比如注册 IP 数、每日访问 IP 数、页面实时UV、在线用户数,共同好友数等。

相关命令使用: 

127.0.0.1:6379> pfadd key1 a b c d e f g h i # 创建第一组元素

(integer) 1

127.0.0.1:6379> pfcount key1                 # 统计元素的基数数量

(integer) 9

127.0.0.1:6379> pfadd key2 c j k l m e g a       # 创建第二组元素

(integer) 1

127.0.0.1:6379> pfcount key2

(integer) 8

127.0.0.1:6379> pfmerge key3 key1 key2           # 合并两组:key1 key2 -> key3 并集

OK

127.0.0.1:6379> pfcount key3

(integer) 13

2、 Bitmaps (位图)

比如:统计用户信息,活跃,不活跃! 登录,未登录! 打卡,不打卡! 两个状态的,都可以使用

相关命令使用: 

127.0.0.1:6379> setbit sign 0 1

(integer) 0

127.0.0.1:6379> setbit sign 1 1

(integer) 0

127.0.0.1:6379> setbit sign 2 0

(integer) 0

127.0.0.1:6379> setbit sign 3 1

(integer) 0

127.0.0.1:6379> setbit sign 4 0

(integer) 0

127.0.0.1:6379> setbit sign 5 0

(integer) 0

127.0.0.1:6379> setbit sign 6 1

(integer) 0

3、geospatial (地理位置)

Redis 的 Geo 在 Redis 3.2 版本就推出了! 这个功能可以推算地理位置的信息:两地之间的距离,,方圆几里的人。

相关命令使用: 

1、添加地理位置:

127.0.0.1:6379> geoadd china:city 118.76 32.04 manjing 112.55 37.86 taiyuan 123.43 41.80 shenyang

(integer) 3

127.0.0.1:6379> geoadd china:city 144.05 22.52 shengzhen 120.16 30.24 hangzhou 108.96 34.26 xian

(integer) 3

2、获取指定的成员的经度和纬度

127.0.0.1:6379> geopos china:city taiyuan manjing

1) 1) "112.54999905824661255"

   1) "37.86000073876942196"

2) 1) "118.75999957323074341"

   1) "32.03999960287850968"

 

...全文
72 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
CSDN-Ada助手 2023-01-13
  • 打赏
  • 举报
回复
您可以前往 CSDN问答-大数据 发布问题, 以便更快地解决您的疑问

151

社区成员

发帖
与我相关
我的任务
社区描述
开源数据库
其他 其他
社区管理员
  • 数据库小助手
  • 灰小猿
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧