元月's blog 元月's blog
首页
  • 基础
  • 并发编程
  • JVM
  • Spring
  • Redis篇
  • Nginx篇
  • Kafka篇
  • Otter篇
  • Shardingsphere篇
  • 设计模式
  • MySQL
  • Oracle
  • 基础
  • 操作系统
  • 网络
  • 数据结构
  • 技术文档
  • Git常用命令
  • GitHub技巧
  • 博客搭建
  • 开发工具
更多

元月

临渊羡鱼,不如退而结网
首页
  • 基础
  • 并发编程
  • JVM
  • Spring
  • Redis篇
  • Nginx篇
  • Kafka篇
  • Otter篇
  • Shardingsphere篇
  • 设计模式
  • MySQL
  • Oracle
  • 基础
  • 操作系统
  • 网络
  • 数据结构
  • 技术文档
  • Git常用命令
  • GitHub技巧
  • 博客搭建
  • 开发工具
更多
  • Redis

    • Redis安装
    • Redis持久化+灾难恢复方案
    • Redis常见数据类型和使用场景
    • Redis数据结构(一)Hyperloglog的实现原理
    • Redis数据结构(二)Bitmap位图的实现原理
      • 一、什么是Bitmap?
      • 二、位图的优势
      • 三、常用命令
        • 1、基本操作
        • 2、集合操作
      • 四、应用场景
      • 五、参考文档
      • 六、思维导图
    • Redis高可用
    • Redis缓存过期策略以及淘汰策略是什么?
    • 缓存穿透、缓存击穿和缓存雪崩的解决方案
    • Redis分布式锁的演变历史
    • Redis的集成与应用
  • Nginx

  • Kafka

  • Shardingsphere

  • Otter

  • nexus

  • 中间件
  • Redis
元月
2022-06-28
目录

Redis数据结构(二)Bitmap位图的实现原理

# Redis数据结构(二)Bitmap位图的实现原理

# 一、什么是Bitmap?

​ Bitmaps并不是一个实际的数据类型,而是在String类型上定义的一组面向比特的操作,由于String类型最大长度为512 MB,因此它们可以存储2^32(40亿)个比特位信息

# 二、位图的优势

  • ​ 基于最小的单位bit进行存储,所以非常省空间。
  • ​ 设置时候时间复杂度O(1)、读取时候时间复杂度O(n),操作是非常快的
  • ​ 二进制数据的存储,进行相关计算的时候非常快

# 三、常用命令

# 1、基本操作

  • ​ SETBIT 命令的第一个参数是位数,第二个参数是将位数设置为1或0的值。如果所地址位在当前字符串长度之外,命令会自动放大字符串

    > setbit key 10 1
    (integer) 1
    
    1
    2
  • ​ GETBIT 只是返回指定索引上的位值。超出范围的位(地址位于存储到目标键的字符串长度之外的位)总是被认为是零

    > getbit key 10
    (integer) 1
    
    1
    2
  • ​ BITCOUNT 执行计数,报告比特数设置为1的个数

    > bitcount key
    (integer) 2
    
    1
    2

# 2、集合操作

#集合操作,对一个或多个bitmap集合操作(AND OR XOR NOT),最终结果保存到destkey
BITOP AND destkey srckey1 srckey2 srckey3 ... srckeyN
BITOP OR destkey srckey1 srckey2 srckey3 ... srckeyN
BITOP XOR destkey srckey1 srckey2 srckey3 ... srckeyN
BITOP NOT destkey srckey
1
2
3
4
5

# 四、应用场景

​ 各种实时分析以及高效、高性能存储与对象ID相关的布尔信息

  1. ​ 用户签到
  2. ​ 点赞/取消点赞
  3. ​ 日活统计

# 五、参考文档

​ https://redis.io/docs/manual/data-types/data-types-tutorial/#bitmaps

# 六、思维导图

img_2.png

#Redis#Bitmap
Redis数据结构(一)Hyperloglog的实现原理
Redis高可用

← Redis数据结构(一)Hyperloglog的实现原理 Redis高可用→

最近更新
01
otter二次开发-支持按目标端主键索引Load数据
08-03
02
mvnw简介
06-21
03
gor流量复制工具
06-03
更多文章>
Theme by Vdoing | Copyright © 2022-2024 元月 | 粤ICP备2022071877号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式