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

⑥【bitmap 】Redis数据类型: bitmap [使用手册]

在这里插入图片描述

个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~
个人主页:.29.的博客
学习社区:进去逛一逛~

在这里插入图片描述

Redis bitmap

  • ⑥Redis bitmap 基本操作命令
      • 1. setbit 设置偏移量的值(值只能0和1)
      • 2. getbit 获取指定偏移量的值
      • 3. strlen 统计字节数占用多少
      • 4. bitcount 统计全部键里面1的数量


⑥Redis bitmap 基本操作命令


  • 用String类型作为底层数据结构实现的一种统计二值状态(0,1)的数据类型
  • 位图本质是数组,它是基于String数据类型的按位的操作。该数组由多个二进制位组成,每个二进制位都对应一个偏移量(我们称之为一个索引)。
  • Bitmap支持的最大位数是232位,它可以极大的节约存储空间,使用512M内存就可以存储多达42.9亿的字节信息(232 = 4294967296)

常见使用场景

  • 用户是否登陆过(Y/N)
  • 电影、视频、广告等是否被点击播放过
  • 上班打卡签到

1. setbit 设置偏移量的值(值只能0和1)


setbit key offset value


# bitmap的偏移量是从0开始的,值只能是0或1
# 将偏移量8的值设为1
bitmap bm1 8 1

在这里插入图片描述



2. getbit 获取指定偏移量的值


getbit key offset


# bitmap的偏移量是从0开始的,值只能是0或1
# 获取指定偏移量的值
getbit bm1 0
getbit bm1 8

在这里插入图片描述



3. strlen 统计字节数占用多少


strlen key


# bitmap的偏移量是从0开始的,值只能是0或1
# 按照8偏移位一组算一个byte,设置同一组偏移位,最多只会增加1的字节占用数
strlen bm1 # 查看bm1的字节占用


4. bitcount 统计全部键里面1的数量


bitcount key [start end [BYTE|BIT]]


# 统计键中偏移量的值为1的个数,可以指定bit或byte的范围
bitcount bm1 # 统计所有偏移量值为1的个数
bitcount bm1 0 3 bit # 统计0至3bit范围内,偏移量值为1的数量
bitcount bm1 0 3 byte# 统计0至3byte范围内,偏移量值为1的数量(1byte相当于8bit)

在这里插入图片描述





在这里插入图片描述

相关文章:

  • Vue - Vue配置proxy代理,开发、测试、生产环境
  • cocos游戏引擎制作的滚动框地图防止误点操作的简单方法
  • C/C++ 使用API实现数据压缩与解压缩
  • 【好玩的 Docker 项目】搭建一个简洁的记事本 ——minimalist-web-notepad
  • Mac 最佳使用指南
  • Python 安装mysqlclient 错误 无法打开包括文件: “mysql.h”: 解决方法
  • 揭秘短信轰炸:原理实现与应对办法
  • Leetcode 2944. Minimum Number of Coins for Fruits
  • Lubuntu 23.10用户可使用LXQt 1.4桌面
  • torch.nn.batchnorm1d,torch.nn.batchnorm2d,torch.nn.LayerNorm解释:
  • 竞赛选题 题目:基于LSTM的预测算法 - 股票预测 天气预测 房价预测
  • redis报错3
  • pandas根据列正逆序排序
  • 僵尸进程与孤儿进程
  • 一文读懂V4L2(Video for Linux 2)框架
  • ES6指北【2】—— 箭头函数
  • 自己简单写的 事件订阅机制
  • 【翻译】Mashape是如何管理15000个API和微服务的(三)
  • 【跃迁之路】【641天】程序员高效学习方法论探索系列(实验阶段398-2018.11.14)...
  • ES6系统学习----从Apollo Client看解构赋值
  • export和import的用法总结
  • Flex布局到底解决了什么问题
  • Go 语言编译器的 //go: 详解
  • JavaScript 基础知识 - 入门篇(一)
  • Just for fun——迅速写完快速排序
  • Laravel Telescope:优雅的应用调试工具
  • Netty源码解析1-Buffer
  • nfs客户端进程变D,延伸linux的lock
  • ng6--错误信息小结(持续更新)
  • OpenStack安装流程(juno版)- 添加网络服务(neutron)- controller节点
  • React 快速上手 - 06 容器组件、展示组件、操作组件
  • Sequelize 中文文档 v4 - Getting started - 入门
  • SpriteKit 技巧之添加背景图片
  • SQLServer之索引简介
  • 对话:中国为什么有前途/ 写给中国的经济学
  • 和 || 运算
  • 记一次用 NodeJs 实现模拟登录的思路
  • 开发了一款写作软件(OSX,Windows),附带Electron开发指南
  • 微信小程序上拉加载:onReachBottom详解+设置触发距离
  • 你对linux中grep命令知道多少?
  • #162 (Div. 2)
  • #NOIP 2014# day.1 生活大爆炸版 石头剪刀布
  • #Ubuntu(修改root信息)
  • (+4)2.2UML建模图
  • (c语言)strcpy函数用法
  • (java版)排序算法----【冒泡,选择,插入,希尔,快速排序,归并排序,基数排序】超详细~~
  • (rabbitmq的高级特性)消息可靠性
  • (转)IIS6 ASP 0251超过响应缓冲区限制错误的解决方法
  • .bat批处理(五):遍历指定目录下资源文件并更新
  • .NET CORE 第一节 创建基本的 asp.net core
  • .net core 6 集成 elasticsearch 并 使用分词器
  • .NET Core实战项目之CMS 第一章 入门篇-开篇及总体规划
  • .NET DevOps 接入指南 | 1. GitLab 安装
  • .NET Reactor简单使用教程
  • @ModelAttribute 注解