mysql redis geo_Redis三种特殊数据类型——(BitMap、Geo、HyperLogLog)

本文介绍了Redis中的Bitmap、Geo和HyperLogLog数据结构及其使用。Bitmap用于存储用户在线状态,通过offset表示用户ID,value为1表示在线,0表示不在线。Geo命令如GEOADD用于在空间索引中添加位置元素,便于存储地理信息。HyperLogLog则是一种节省内存的统计工具,适用于计算不重复项的数量,如注册IP数、在线用户数等。
摘要由CSDN通过智能技术生成

Bitmap

setbit

getbit

bitcount

其中 offset 必须是数字,value 只能是 0 或者 1

这个命令的返回值是修改前的值

对应内存中的值:

09875e330b1c9de5359139093ee8bfce.png

可以看出 bit 的默认值是 0,那么 Bitmap 在实际开发的运用呢?

这里举一个例子:储存用户在线状态

这里只需要一个 key,然后把用户 ID 作为 offset,如果在线就设置为 1,不在线就设置为 0

Geo

geoadd

geopos

geodist

georadius

georadiusbymember

geohash

GEOADD

将给定的空间元素(纬度、经度、名字)添加到指定的键里面

这些数据会以zset的结构被储存在键里面

比如设置

key为Sicily(意大利亚西西里岛屿)

member1为Palermo(意大利西西里自治区首府 巴勒莫)

member2为Catania(意大利西西里大区卡塔尼亚省首府 卡塔尼亚)

GEOPOS

返回经纬度

GEODIST

返回两个位置之间的距离,unit必须为m km mi英里 或 ft英尺

GEORADIUS

以给定的经纬度为中心, 返回键包含的位置元素当中, 与中心的距离不超过给定最大距离的所有位置元素

WITHDIST

在返回位置元素的同时, 将位置元素与中心之间的距离也一并返回

距离的单位和用户给定的范围单位保持一致

WITHCOORD

将位置元素的经度和维度也一并返回

HyperLogLog

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

但是它也有局限性,就是只能统计数量,而没办法去知道具体的内容是什么

– PFADD

– PFCOUNT

– PFMERGE

PFADD

PFCOUNT

PFMERGE

将多个 HyperLogLog 合并为一个 HyperLogLog

合并后的 HyperLogLog 的基数接近于所有输入 HyperLogLog 的可见集合的并集

合并得出的 HyperLogLog 会被储存在 destkey 键里面

如果该键并不存在,那么命令在执行之前, 会先为该键创建一个空的 HyperLogLog

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值