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

redis | 认识非关系数据库Redis的位图数据类型

Redis 非关 kv型

    • 位图
      • 常用命令
      • 应用场景
      • python操作位图

位图

  1. 位图不是真正的数据类型,它是定义在字符串类型中

在这里插入图片描述

01100001 97 61 a
01100010 98 62 b

  1. 一个字符串类型的最多能存储512M字节的内容 位上限:2^32

常用命令

  1. SETBIT

在这里插入图片描述

\x : 16进制

在这里插入图片描述

在这里插入图片描述

  • 没有key值

在这里插入图片描述

  1. GETBIT命令

在这里插入图片描述

  1. BITCOUNT 命令

在这里插入图片描述

应用场景

假设现在我们希望记录自己网站上的用户的上线频率,比如说,计算用户A上线了多少天,用户B上线了多少天,诸如此类,以此作为数据,从而决定让哪些用户参加重要活动一这个模式可以使用SETBIT和BITCOUNT来实现。

比如说,每当用户在某一天上线的时候,我们就使用SETBIT,,以用户名作为key,将那天所代表的网站的上线日作为offset参数,并将这个offset上的为设置为1。

  • 举个例子,如果今天是网站上线的第100天,而用户peter在今天阅览过网站,那么执行命令SETBIT peter1001;如果明天peter也继续阅览网站,那么执行命令SETBIT peter1011,以此类推。

  • 当要计算peter总共以来的上线次数时,就使用BITCOUNT命令:执行BITCOUNT peter,得出的结果就是peter上线的总天数0

网站运行10年,占用的空间也只是每个用户10*365比特位(bit),也即是每个用户456字节。对于这种大小的数据来说,BITCOUNT的处理速度就像GET和INCR操作一样快。

python操作位图

在这里插入图片描述
在这里插入图片描述


http://www.mrgr.cn/news/13840.html

相关文章:

  • 浅谈Sql Server 增删改查
  • 石墨文档数据:合法抓取指南
  • 基于深度学习的生产流程自动化
  • Flask 安装和应用
  • [Pyplot]设置图中字体为TimesNewRoman
  • Kubernetes中的Controller Manager:自动化集群管理的核心引擎
  • 回归预测的相关评价指标
  • 使用WireShark的tshark命令,在window系统Cmd命令行抓包(附环境变量的设置)
  • 【C++】单元测试覆盖率工具lcov的使用
  • 第三十九篇-TeslaP40+CosyVoice-安装
  • 工厂模式与策略模式的较量
  • 高职院校人工智能训练师边缘计算实训室建设方案
  • 临床预测模型的影响力研究之低血糖预警
  • 如何使用 Qt C++ 基于 FFmpeg 开发本地视频播放器
  • 深入探索 Nginx 的 URL 重写与位置匹配
  • Linux Shell脚本入门:参数符号$0,$1,$#,$@,$$与模式替换符^^,,的实用手册
  • 2024嵌入式面试:比亚迪嵌入式面试题及参考答案(BYD面试)
  • 迭代器模式
  • 栈OJ题——栈的压入、弹出序列
  • [C++] C++11详解 (三)类的成员函数、完美转发