返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >Redis中的bitmap详解
  • 405
分享到

Redis中的bitmap详解

2024-04-02 19:04:59 405人浏览 安东尼
摘要

1、什么是bitmap? bitmap也叫位图,也就是用一个bit位来表示一个东西的状态,我们都知道bit位是二进制,所以只有两种状态,0和1。 2、为什么要有bitmap?

1、什么是bitmap?

bitmap也叫位图,也就是用一个bit位来表示一个东西的状态,我们都知道bit位是二进制,所以只有两种状态,0和1。

2、为什么要有bitmap?

bitmap的出现就是为了大数据量而来的,但是前提是统计的这个大数据量每个的状态只能有两种,因为每一个bit位只能表示两种状态。
下面我们直接以一个统计亿级用户活动的状态来说明吧。

3、案例说明

3.1、案例描述

如果有一个上亿用户的系统,需要我们去统计每一天的用户登录情况,我们应该如何去解决?
前提条件:设置在9月19号有下标为100、101、102、103四个用户都登录了系统
设置在9月20号有下标为100、101、102三个用户都登录了系统
提出问题:
1、取出9月19号登录系统的有多少人?
答:直接获取即可。
2、取出9月19号和9月20号连续登录系统的有多少人?
答:两天的数据取&运算。
3、取出9月19号与9月20号任意一天登录的有多少人?
答:两天的数据取|运算。

3.2、解决方案

3.2.1、解决方案1—使用传统数据库解决

如果我们需要使用传统的数据库去统计的话,我么需要创建一张表,然后某个用户登录了,我们就去在表里面插上一条记录,登记用户的id,用户登录的时间等等,但是这样出现的问题就是,每一天的数据量都很大,我们在统计日活时,效率就很低,所以这种解决方案是不能被考虑的。

3.2.2、解决方案2—使用bitmap解决

既然用户登录只有两种状态,那么,我们就可以用bitmap
比如0表示未登录,1表示登录


// 设置在9月19号有下标为100、101、102、103四个用户都登录了系统 start
127.0.0.1:6379> setbit login_09_19 100 1
(integer) 0
127.0.0.1:6379> setbit login_09_19 101 1
(integer) 0
127.0.0.1:6379> setbit login_09_19 102 1
(integer) 0
127.0.0.1:6379> setbit login_09_19 103 1
(integer) 0
// 设置在9月19号有下标为100、101、102、103四个用户都登录了系统 end

// 设置在9月20号有下标为100、101、102三个用户都登录了系统 start
127.0.0.1:6379> setbit login_09_20 100 1
(integer) 0
127.0.0.1:6379> setbit login_09_20 101 1
(integer) 0
127.0.0.1:6379> setbit login_09_20 102 1
(integer) 0
// 设置在9月20号有下标为100、101、102三个用户都登录了系统 end

// 取出9月19号登录系统的有多少人? start
127.0.0.1:6379> bitcount login_09_19
(integer) 4
// 取出9月19号登录系统的有多少人? end

// 取出9月19号和9月20号连续登录系统的有多少人?start
127.0.0.1:6379> bitop and login_in_09_19_20:and login_09_19 login_09_20
(integer) 13
127.0.0.1:6379> bitcount login_in_09_19_20:and
(integer) 3
// 取出9月19号和9月20号连续登录系统的有多少人?end

// 取出9月19号与9月20号任意一天登录的有多少人?start
127.0.0.1:6379> bitop or login_in_09_19_20:or login_09_19 login_09_20
(integer) 13
127.0.0.1:6379> bitcount login_in_09_19_20:or
(integer) 4
// 取出9月19号与9月20号任意一天登录的有多少人?end

在这里插入图片描述

到此这篇关于Redis中的bitmap详解的文章就介绍到这了,更多相关Redis中的bitmap内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Redis中的bitmap详解

本文链接: https://lsjlt.com/news/155412.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Redis中的bitmap详解
    1、什么是bitmap? bitmap也叫位图,也就是用一个bit位来表示一个东西的状态,我们都知道bit位是二进制,所以只有两种状态,0和1。 2、为什么要有bitmap? ...
    99+
    2024-04-02
  • redis中的bitmap你了解吗
    目录1、BitMap是什么2、setbit命令介绍 总结1、BitMap是什么 通过一个bit位来表示某个元素对应的值或者状态,其中的key就是对应元素本身。我们知道8个b...
    99+
    2024-04-02
  • 关于Redis中bitmap的原理和使用详解
    目录一、原理二、BitMap 相关命令三、BitMap 空间计算四、使用场景1. 用户签到2. 统计活跃用户(用户登陆情况)3. 统计用户在线状态4. 实现布隆过滤器五、总结一、原理 先声明一下:Redis 有5种数据类...
    99+
    2023-05-16
    Redis bitmap bitmap原理 bitmap使用
  • Redis中bitmap的用法
    本篇内容介绍了“Redis中bitmap的用法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2024-04-02
  • Redis中的bitmap是什么
    本篇内容主要讲解“Redis中的bitmap是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Redis中的bitmap是什么”吧!Redis 的位图(bit...
    99+
    2024-04-02
  • Redis中Bitmap的使用示例
    目录位图应用原理位图常用命令1) SETBIT命令2) GETBIT命令3) BITCOUNT命令4)Redis Bitop 命令场景统计当日活跃用户用户签到在日常开发过程中,经常会...
    99+
    2024-04-02
  • redis中的bitmap实例分析
    本文小编为大家详细介绍“redis中的bitmap实例分析”,内容详细,步骤清晰,细节处理妥当,希望这篇“redis中的bitmap实例分析”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。1、BitMap是什么通过...
    99+
    2023-06-29
  • redis中的bitmap怎么使用
    Redis中的位图(bitmap)是一种特殊的数据结构,用于存储和操作位数据。它可以用于实现一些简单的计数功能,以及判断某个元素是否...
    99+
    2023-09-04
    redis bitmap
  • Redis中的Bitmap如何使用
    今天小编给大家分享一下Redis中的Bitmap如何使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。在日常开发过程中,经常...
    99+
    2023-06-30
  • Android Bitmap详解及Bitmap的内存优化
    Android Bitmap详解及Bitmap的内存优化 一、Bitmap: Bitmap是Android系统中的图像处理的最重要类之一。用它可以获取图像文件信息,进行图像剪切...
    99+
    2022-06-06
    内存优化 bitmap 优化 Android
  • redis bitmap数据结构之java对等操作详解
    目录1. Redis基本的bitmap操作命令2. Java中的原生bitmap3. java和redis的bitmap互操作  在之前的文章中,我们有说过bitmap,bitmap在很多场景可以应用,比如黑白名单,快速...
    99+
    2024-04-02
  • redis bitmap数据结构之java对等操作详解
    目录1. redis基本的bitmap操作命令2. java中的原生bitmap3. java和redis的bitmap互操作  在之前的文章中,我们有说过bitmap,bitmap...
    99+
    2022-11-13
    redis bitmap数据结构 java对等操作 redis bitmap
  • Redis在PHP应用中的Bitmap操作
    在Web开发领域,Redis是一个非常流行的键值存储数据库,而PHP是一种广泛使用的Web编程语言。Redis提供了许多功能,其中一个非常有用的功能是Bitmap操作。Bitmap是Redis中的一种数据结构,它可以轻松地实现各种位图操作。...
    99+
    2023-05-19
    redis PHP应用 Bitmap操作
  • 浅谈Redis位图(Bitmap)及Redis二进制中的问题
    Redis位图(Bitmap)及二进制的问题 SETBIT key offset value 对 key 所储存的字符串值,设置或清除指定偏移量上的位(bit)。位的设置或清除取决于...
    99+
    2024-04-02
  • 详解Android中Bitmap及其内存优化
    小编这次要给大家分享的是详解Android中Bitmap及其内存优化,文章内容丰富,感兴趣的小伙伴可以来了解一下,希望大家阅读完这篇文章之后能够有所收获。Android Bitmap详解及Bitmap的内存优化一、Bitmap:Bitmap...
    99+
    2023-05-31
    android bitmap roi
  • redis的string类型及bitmap介绍
    目录Redis运行原理redis使用redis二进制安全getset命令位图(bitmap)场景题总结redis运行原理 redis有很多的客户端连接进来,站在redis所在机器的角度来说,就是有很多socket的连接,...
    99+
    2022-07-27
    redis的string类型 redis bitmap
  • redis的bitmap使用实例分析
    这篇文章主要讲解了“redis的bitmap使用实例分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“redis的bitmap使用实例分析”吧!1.位图简介...
    99+
    2024-04-02
  • Redis使用Bitmap的方法实现
    目录1. Bitmap 是什么2. 占用存储空间3. 命令3.1 SETBIT3.2 GETBIT3.3 BITCOUNT3.4 BITOP3.5 BITPOS1. Bitmap 是什么 Bitmap(也称为位数组或者位...
    99+
    2023-01-28
    Redis使用Bitmap
  • Android Bitmap压缩方法的选择详解
    刚刚修改Bug碰到了一个问题,先描述一下问题。 1.测试说分享文章到微信失败,QQ成功。 定位到微信分享接口。 2.分享其它文章到微信成功。 接口有问题!差点就找接口了,...
    99+
    2022-06-06
    选择 方法 bitmap Android
  • Android Bitmap像素级操作详解
    一:什么是Bitmap像素级的操作 相信大家都知道一张jpg或png放大后会是一个个小格子,称为一个像素(px),而且一个小格子是一种颜色,也就是一张jpg或png图片就是很多颜色的...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作