【Redis 】Bitmap 使用

devtools/2024/11/26 9:28:33/

Redis Bitmap介绍

Redis Bitmap 是一种特殊的数据类型,它通过字符串类型键来存储一系列连续的二进制位(bits),每个位可以独立地表示一个布尔值(0 或 1)。这种数据结构非常适合用于存储和操作大量二值状态的数据,尤其在需要高效空间利用率和特定位操作场景中表现出色。

Bitmap 的应用场景

用户签到系统

Bitmap 可以用于记录用户的签到情况。每个用户对应一个 Bitmap,每一位表示一天的签到状态。

【例】用户 user1 在 2024 年 11 月 25 日签到:

SETBIT user1:20241125 0 1
统计活跃用户

Bitmap 可以用于统计一段时间内的活跃用户。每个用户对应一个 Bitmap,每一位表示一天的活跃状态。

【例】统计 2024 年 11 月 20 日到 2024 年 11 月 27 日的活跃用户数:

BITCOUNT user:active:20241120
BITCOUNT user:active:20241121
...
BITCOUNT user:active:20241127
布隆过滤器

Bitmap 可以用于实现布隆过滤器,用于判断一个元素是否存在于一个集合中。

 Bitmap 的命令

设置位

使用 SETBIT 命令来设置 Bitmap 中的某一位。

  • key:Bitmap 的键名。

  • offset:要设置的位的偏移量(从 0 开始)。

  • value:要设置的值(0 或 1)。

SETBIT key offset value
SETBIT mybitmap 10 1
获取位

使用 GETBIT 命令来获取 Bitmap 中的某一位的值。

GETBIT key offset
GETBIT mybitmap 10
统计位

使用 BITCOUNT 命令来统计 Bitmap 中值为 1 的位的数量。

  • start 和 end 是可选参数,用于指定统计的范围(以字节为单位)。

BITCOUNT key [start end]
BITCOUNT mybitmap
位运算

Bitmap 进行位运算,包括 ANDORXOR 和 NOT

  • operation:可以是 ANDORXOR 或 NOT

  • destkey:运算结果存储的目标键。

  • key:参与运算的 Bitmap 键。

BITOP operation destkey key [key ...]




http://www.ppmy.cn/devtools/137082.html

相关文章

【Python爬虫五十个小案例】爬取豆瓣电影Top250

博客主页:小馒头学python 本文专栏: Python爬虫五十个小案例 专栏简介:分享五十个Python爬虫小案例 🪲前言 在这篇博客中,我们将学习如何使用Python爬取豆瓣电影Top250的数据。我们将使用requests库来发送HTTP请求,…

代码随想录算法训练营第五十七天|Day57 图论

prim算法精讲 https://www.programmercarl.com/kamacoder/0053.%E5%AF%BB%E5%AE%9D-prim.html prim算法核心就是三步,熟悉这三步,代码相对会好些很多: 第一步,选距离生成树最近节点第二步,最近节点加入生成树第三步&a…

go编程中yaml的inline应用

下列代码,设计 Config 和 MyConfig 是为可扩展 Config,同时 Config 作为公共部分可保持变化。采用了匿名的内嵌结构体,但又不希望 yaml 结果多出一层。如果 MyConfig 中的 Config 没有使用“yaml:",inline"”修饰,则读取…

c++(入门)

1. 引用 引用的定义 引用是另一个变量的别名,它在声明时必须被初始化,并且一旦初始化后,它就始终引用那个变量。 引用的语法 引用的声明方式是在变量名前加上&符号。 引用的特点 引用必须在声明时初始化。引用一旦初始化后&#x…

C++设计模式-中介者模式

动机(Motivation) 多个对象相互关联的情况,对象之间常常会维持一种复杂的引用关系,如果遇到一些需求的更改,这种直接的引用关系将面临不断的变化。在这种情况下,可以使用一种”中介对象“来管理对象间的关联关系,避免…

net 站点安全 OwaspHeaders.Core

OwaspHeaders.Core 环境:net8 nuget包:OwaspHeaders.Core Version9.0.1 OwaspHeaders.Core是一款专为ASP.NET Core设计的中间件集合,旨在通过采用OWASP推荐的请求头,以增强Web应用的安全性。该项目不仅支持最新的.NET SDK版本&…

如何通过ChatGPT提高自己的编程水平

在编程学习的过程中,开发者往往会遇到各种各样的技术难题和学习瓶颈。传统的学习方法依赖书籍、教程、视频等,但随着技术的不断发展,AI助手的崛起为编程学习带来了全新的机遇。ChatGPT,作为一种强大的自然语言处理工具&#xff0c…

excel版数独游戏(已完成)

前段时间一个朋友帮那小孩解数独游戏,让我帮解,我看他用电子表格做,只能显示,不能显示重复,也没有协助解题功能,于是我说帮你做个电子表格版的“解题助手”吧,不能直接解题,但该有的…