redis高级用法bitmap、布隆过滤器、hyperloglogs和geospatial

本文介绍了Redis中的高级用法,包括位图(Bitmap)用于节省空间存储大量用户信息,布隆过滤器(Bloom Filter)实现高效的集合查询,可能会有误判,HyperLogLogs用于基数统计,以及Geospatial功能,可用于地理位置相关的查询,如附近或同城人的查找。这些特性在实际应用中具有很高的价值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.bitmap位图
位图不是实际的数据类型,而是在String类型上定义的一组面向位的操作,使用1,0来表示数据,redis的key和value是有大小限制的,都是不能超过512M,那么bitmap最大能设置2^32的长度。

  8 bit = 1byte  
 1024 byte = 1kb
 1024 kb = 1Mb
 512 * 1024 * 1024 *8 = 2^32l

使用

setbit k offset value offset为二进制的偏移量 针对二进制修改值为value
   setbit k 1 1 -> get k = @  (0100 0000)
   setbit k 7 1 -> get k = A    (0100 0001)
   setbit k 9 1 -> get k = A@ (0100 0001 0100)
bitcount k start end 统计二进制1出现的次数 start end 代表字节长度
   bitcount k 0 0 计算出第0个字节八位当中的1的次数
   bitcount k 0 1  计算出第0个字节和第一个字节 这十六位中出现的1的次数

bitpos key bit start end ,在该key中,第start的位置到end的位置 该bit的位置
   bitpos k 0 1 1 ->8 (0100 0001 0 100)
bitop 二进制运算 

使用场景

1.统计用户的登录天数 随机统计某阶段天数
  可以把一年当成365个二进制位,登录则把某天改为1,统计某些天的1的次数
  setbit json 320 1
  setbit json 310 1
  setbit json 1 1
  setbit js
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值