专注于 JetBrains IDEA 全家桶,永久激活,教程
持续更新 PyCharm,IDEA,WebStorm,PhpStorm,DataGrip,RubyMine,CLion,AppCode 永久激活教程

Redis教程-高级数据类型(21)

1. Bitmaps

94_1.png

1.1 Bitmaps类型的基础操作
  • 获取指定key对应偏移量上的bit值
getbit key offset

  • 设置指定key对应偏移量上的bit值, value 只能是1或 0
setbit key offset value

1.2 Bitmaps类型的扩展操作

1、 业务场景-电影网站

 *  统计每天某一部电影是否被点播
 *  统计每天有多少部电影被点播
 *  统计每周/月/年有多少部电影被点播
 *  统计年度哪部电影没有被点播

2、 业务分析

94_2.png

1.3 Bitmaps类型的扩展操作
  • 对指定key按位进行交、并、非、异或操作, 并将结果保存到destKey中
bitop op destKey key1 [key2...]

- and:交
- or:并
- not:非
- xor:异或

  • 统计指定key中1的数量
bitcount key [start end]

94_3.png

2. HyperLogLog
2.1 基数集

94_4.png

2.2 LogLog算法

94_5.png

2.3 HyperLogLog类型的基本操作
  • 添加数据
pfadd <key> <element> [element...]

  • 统计数据
pfcount <key> [key...]

  • 合并数据
pfmerge <destkey> <sourcekey> [sourekey...]

2.4 相关说明
  • 用于进行基数统计,不是集合,不保存数据,只记录数量而不是具体数据
  • 核心是基数估算算法,最终数值存在一定误差
  • 误差范围:基数估计的结果是一个带有0.81%标准错误的近似值
  • 耗空间极小, 每个hyperloglog key占用了12K的内存用于标记基数
  • pfadd命令不是一次性分配12K内存使用, 会随着基数的增加内存逐渐增大
  • Pfmerge命令合并后占用的存储空间为12K, 无论合并之前数据量多少
3. GEO
3.1 GEO类型的基本操作
  • 添加坐标点
geoadd key longitude latitude member[longitude latitude member...]

  • 获取坐标点
geopos key member[member...]

  • 计算坐标点距离
geodist key member1 member2[unit]

  • 根据坐标求范围内的数据
georadius key longitude latitude radius m|kml ft|mi[with coord] [with dist] [with hash] [count count]

  • 根据点求范围内数据
georadius by member key member radius m|km|ft|mi[with coord] [with dist] [with hash] [count count]

  • 获取指定点对应的坐标hash值
geohash key member[member...]

94_6.png

94_7.png

文章永久链接:https://tech.souyunku.com/34463

未经允许不得转载:搜云库技术团队 » Redis教程-高级数据类型(21)

JetBrains 全家桶,激活、破解、教程

提供 JetBrains 全家桶激活码、注册码、破解补丁下载及详细激活教程,支持 IntelliJ IDEA、PyCharm、WebStorm 等工具的永久激活。无论是破解教程,还是最新激活码,均可免费获得,帮助开发者解决常见激活问题,确保轻松破解并快速使用 JetBrains 软件。获取免费的破解补丁和激活码,快速解决激活难题,全面覆盖 2024/2025 版本!

联系我们联系我们