Redis新数据类型-Bitmaps

目录

Bitmaps

简介

命令

[1. setbit](#1. setbit)

[(1) 格式](#(1) 格式)

[(2) 实例](#(2) 实例)

[2. getbit](#2. getbit)

[(1) 格式](#(1) 格式)

[(2) 实例](#(2) 实例)

[3. bitcount](#3. bitcount)

[(1) 格式](#(1) 格式)

[(2) 实例](#(2) 实例)

[4. bitop](#4. bitop)

[(1) 格式](#(1) 格式)

[(2) 实例](#(2) 实例)

我的其他博客


Bitmaps

简介

Bitmaps 是 Redis 的一种新数据类型,它是一种用于存储位信息的数据结构,通常被用来表示状态或者标记。
现代计算机用二进制(位) 作为信息的基础单位, 1个字节等于8位, 例如"abc"字符串是由3个字节组成, 但实际在计算机存储时将其用二进制表示, "abc"分别对应的ASCII码分别是97、 98、 99, 对应的二进制分别是01100001、 01100010和01100011,如下图:

命令
1. setbit
(1) 格式
复制代码
SETBIT key offset value
  • key: 要操作的键名。
  • offset: 位的偏移量。
  • value: 要设置的位的值,只能是 0 或 1。
(2) 实例
复制代码
SETBIT mybitmap 0 1
SETBIT mybitmap 2 1
SETBIT mybitmap 5 1

mybitmap 中,将第 0、2 和 5 位的值设置为 1。

2. getbit
(1) 格式
复制代码
GETBIT key offset
  • key: 要查询的键名。
  • offset: 位的偏移量。
(2) 实例
复制代码
GETBIT mybitmap 2

查询 mybitmap 中第 2 位的值。

3. bitcount
(1) 格式
复制代码
BITCOUNT key [start end]
  • key: 要统计的键名。
  • start: 开始计数的位偏移量,默认为 0。
  • end: 结束计数的位偏移量,默认为 -1,表示统计整个位图。
(2) 实例
复制代码
BITCOUNT mybitmap 1 6

统计 mybitmap 中从第 1 位到第 6 位之间值为 1 的位的数量。

4. bitop
(1) 格式
复制代码
BITOP operation destkey key [key ...]
  • operation: 操作类型,支持 AND、OR、XOR、NOT。
  • destkey: 存储结果的键名。
  • key: 参与操作的键名,可以是一个或多个。
(2) 实例
复制代码
BITOP AND resultkey key1 key2
BITOP OR resultkey key1 key2 key3
BITOP XOR resultkey key1 key2
BITOP NOT resultkey key

执行位运算操作,将结果存储在 resultkey 中。

以上是关于 Redis 新数据类型 Bitmaps 的一些基本介绍和常用命令,通过这些命令可以方便地进行位图的设置、获取、统计和位运算等操作。

我的其他博客

简单介绍一些其他的树-CSDN博客

认识二叉树(详细介绍)-CSDN博客

正则表达式详细讲解-CSDN博客

低代码开发:创新之道还是软件开发的捷径?-CSDN博客

HTTP与HTTTPS的区别-CSDN博客

什么情况下会产生StackOverflowError(栈溢出)和OutOfMemoryError(堆溢出)怎么排查-CSDN博客

在多线程中sleep()和wait()的区别(详细)-CSDN博客

谈谈我对HashMap扩容机制的理解及底层实现-CSDN博客

堆排序详细讲解(一文足矣JAVA)-CSDN博客

相关推荐
心灵宝贝13 分钟前
libopenssl-1_0_0-devel-1.0.2p RPM 包安装教程(openSUSE/SLES x86_64)
linux·服务器·数据库
程序新视界2 小时前
MySQL中,IS NULL和IS NOT NULL不会走索引?错!
数据库·mysql·dba
wdfk_prog2 小时前
闹钟定时器(Alarm Timer)初始化:构建可挂起的定时器基础框架
java·linux·数据库
许长安2 小时前
Redis(二)——Redis协议与异步方式
数据库·redis·junit
java_python源码3 小时前
python高校心理健康服务小程序(源码+文档+调试+基础修改+答疑)
数据库·sqlite
简色3 小时前
题库批量(文件)导入的全链路优化实践
java·数据库·mysql·mybatis·java-rabbitmq
Lisonseekpan4 小时前
Java Caffeine 高性能缓存库详解与使用案例
java·后端·spring·缓存
点灯小铭4 小时前
基于单片机的自动存包柜设计
数据库·单片机·mongodb·毕业设计·课程设计
失散134 小时前
软件设计师——09 数据库技术基础
数据库·软考·软件设计师
养生技术人5 小时前
Oracle OCP认证考试题目详解082系列第53题
数据库·sql·oracle·database·开闭原则·ocp