{{format('0')}} {{format('391')}} {{format('1013')}}

【redis】三大特殊类型 bitmaps 位图 [ 编程杂谈 ]

大数据男孩 文章 正文

想做一个技术博客,奈何实力不够
分享

明妃

{{nature("2022-08-14 17:23:19")}}更新

说明

bitmaps (位图)主要用来记录只有两种状态的事件。

比如:活跃|不活跃、登录|未登录、成功|失败

优势

  • 存储信息时通常可以极大地节省空间,仅使用 512 MB 内存就可以记住 40 亿用户的单个位信息。
  • 设置时候时间复杂度O(1)、读取时候时间复杂度O(n),操作是非常快的。
  • 二进制数据的存储,进行相关计算的时候非常快。
  • 方便扩容

使用

常用三个命令,就很简单,就直接举例子( 打卡 | 签到 )

setbit key offset value

  • offset:value 的偏移值,初始值为 0(看下面的图)
  • value:只能是 0 or 1 (这是二进制的位)
127.0.0.1:6379> SETBIT sign:Bob:202201 1 1 # 设置 这里的 1|0 是二进制
(integer) 0
127.0.0.1:6379> SETBIT sign:Bob:202201 2 1
(integer) 0
127.0.0.1:6379> SETBIT sign:Bob:202201 3 0
(integer) 0
127.0.0.1:6379> SETBIT sign:Bob:202201 4 1
(integer) 0
127.0.0.1:6379> SETBIT sign:Bob:202201 5 1
(integer) 0
127.0.0.1:6379> SETBIT sign:Bob:202201 6 1
(integer) 0
127.0.0.1:6379> SETBIT sign:Bob:202201 7 1
(integer) 0
127.0.0.1:6379> GETBIT sign:Bob:202201 2 # 获取某天状态
(integer) 1
127.0.0.1:6379> BITCOUNT sign:Bob:202201 # 统计 位 1 的数量
(integer) 6

[mark]()

评论 0
0
{{userInfo.data?.nickname}}
{{userInfo.data?.email}}
TOP 2
Spark 2.0 单机模式与集群模式 安装

{{nature('2020-01-02 16:47:07')}} {{format('12641')}}人已阅读

TOP 3
Office 2016 Pro Plus 激活

{{nature('2019-12-11 20:43:10')}} {{format('9527')}}人已阅读

TOP 4
Linux上 MySQL 开启远程登陆的两种方法

{{nature('2019-12-26 17:20:52')}} {{format('7573')}}人已阅读

TOP 5
Linux 安装 MySQL 5.7

{{nature('2019-12-26 16:03:55')}} {{format('5017')}}人已阅读

目录

标签云

Redis bitmaps

一言

# {{hitokoto.data.from || '来自'}} #
{{hitokoto.data.hitokoto || '内容'}}
作者:{{hitokoto.data.from_who || '作者'}}
自定义UI
配色方案

侧边栏