Java学习 - Redis衍生数据类型

Bitmap

Bitmap是什么

  • Bitmap译名为位图,其工作原理是用一个bit来标识一个数据

Bitmap的作用

  • 用于海量数据的排序,去重,查询是否存在

Bitmap的使用

  • setbit key offset value

    setbit unique 0 1
    setbit unique 5 1
    setbit unique 11 1
    setbit unique 15 1
    setbit unique 20 1
    
  • getbit key offset

    getbit unique 0
    getbit unique 5
    getbit unique 11
    getbit unique 15
    getbit unique 20
    
  • bitcount key [start end]

    • 获取指定范围start,end字节中bit为1的个数

    • 如果不指定start,end则为全部

      bitcount unique 1 2
      
  • bitop and|or|xor key1 key2

    • 求两个位图的交集,并集,异或

Bitmap的本质

  • Bitmap本质是字符串

HyperLogLog

HyperLogLog是什么

  • 基于HyperLogLog算法实现的数据类型

HyperLogLog的作用

  • 以极小空间完成数量的统计

HyperLogLog的使用

  • pfadd key element1 [element2…]
    • 添加元素
  • pfcount key
    • 统计元素
  • pfmerge key1 key2
    • 合并多个 HyperLogLog

HyperLogLog的本质

  • HyperLogLog的本质是字符串

HyperLogLog的注意事项

  • HyperLogLog可能会出现错误,概率为0.81%
  • HyperLogLog只能用于统计数目,而不能存储实际的数据

GEO

GEO类型是什么

  • 记录地理信息的经度和纬度

GEO的作用

  • 计算两地距离,范围等等

GEO的使用

  • geo key 经度 纬度 地方名
    • 添加新的 地方名-经度-纬度
  • geopos key 地方名
    • 查找 地方名对应的经度和纬度
  • geodist key 地方名1 地方名2
    • 计算两个地方名之间的距离

GEO的本质

  • GEO类型本质使用zset实现
  • 删除 API:zrem key 地方名
  • 12
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值