当前位置: 首页 > news >正文

Redis新数据类型-Bitmaps

目录

Bitmaps

简介

命令

1. setbit

(1) 格式

(2) 实例

2. getbit

(1) 格式

(2) 实例

3. bitcount

(1) 格式

(2) 实例

4. bitop

(1) 格式

(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博客

 

 

 

 

 

 

 

 

http://www.lryc.cn/news/261075.html

相关文章:

  • web前端之vue组件传参、各种传参的不同写法、语法糖
  • 基于Nexus搭建Maven私服基础入门
  • JavaScript自执行函数:用途、好处
  • Git使用无法拉取
  • 来聊聊CAS
  • 【EventBus】EventBus源码浅析
  • Buck电源设计常见的一些问题(二)MOS管炸机问题
  • Javascript高频面试题
  • 锁--07_2---- index merge(索引合并)引起的死锁
  • 后端打印不了trace等级的日志?-SpringBoot日志打印-Slf4j
  • 声明式编程Declarative Programming
  • 人工智能与天文:技术前沿与未来展望
  • JeecgBoot 框架升级至 Spring Boot3 的实战步骤
  • 论文阅读——Semantic-SAM
  • gitlab下载,离线安装
  • 【SpringBoot篇】Interceptor拦截器 | 拦截器和过滤器的区别
  • conan入门(三十六):在set_version方法中从pom.xml中读取版本号实现动态版本定义
  • 为什么 GAN 不好训练
  • select、poll、epoll 区别有哪些
  • 大模型下开源文档解析工具总结及技术思考
  • 【华为数据之道学习笔记】5-4 数据入湖方式
  • Vue3-03-reactive() 响应式基本使用
  • OpenAI开源超级对齐方法:用GPT-2,监督、微调GPT-4
  • TeeChart.NET 2023.11.17 Crack
  • 计算机网络常见的缩写
  • vue cli 脚手架之配置代理
  • STM32启动流程详解(超全,startup_stm32xx.s分析)
  • 小程序接口OK,桌面调试接口不行
  • 【贪心】LeetCode-406. 根据身高重建队列
  • 【C++11特性篇】C++11中新增的initializer_list——初始化的小利器