Redis高级数据结构之Bitmaps

这篇具有很好参考价值的文章主要介绍了Redis高级数据结构之Bitmaps。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Bitmaps的介绍

  • 现代计算机使用二进制位作为信息存储的基本单元。一个字节(Byte)等于8个二进制位(bit)。合理的使用位能有效提高内存使用率和开发效率。
  • 位是最小信息单位,可以表示两个状态之一。
  • 字节是更大的单位,用多个位组成,在计算机中数据以字节为单位进行存储和访问。
  • Redis提供了Bitmaps这种,虽然本质上也是字符串,但是他却可以对字符串进行位的操作。
  • Bitmaps单独提供了一套命令,有区别于使用字符串String的命令。
  • 可以把Bitmaps想象成一个以位为单位的数组,数组的每个单元只能存储0和1,数组的下标在Bitmaps中叫做偏移量。

关于Bitmaps在Redis中的操作指令

  • setbit设置值
  • setbit key offset value(设置键的第offset个位的值,从0开始计算)
  • 不同学号的用户分别进行了一次的访问、后面2019102857写的意思是从第0位开始算起第2019102857个位。显然这样子的设置并不是很合理。学号是由相同的数组开头的,这里是201910。要是直接将上述学号直接操作Bitmaps的位偏移量,势必会造成内存的浪费,我们可以使用学号减去201910,后续的数组作为偏移量来进行计算。
    Redis高级数据结构之Bitmaps
  • gitbit获取值
  • gitbit key offset
  • 存在访问或则会返回1,对应的学号id没有访问过,或者学号都不存在都会返回0
    Redis高级数据结构之Bitmaps
  • bitcount获取Bitmaps指定范围位数上是1的个数
  • bitcount [strat] [end]
  • 从学号0到学号2019102860刚好这之间只有4人各自访问一次
    Redis高级数据结构之Bitmaps
  • bitop Bitmaps 间的运算
  • bitop op destkey key [key …]
  • 下面这个是求并集
  • and并集、or交集、not非、xor异或
    Redis高级数据结构之Bitmaps
  • 计算Bitmaps中第一个值为targetBit的位偏移量
  • bitpos key targetBit [start] [end]
  • start 、end可以省略,省略将会遍历整个Bitmaps
  • 返回值是字符串里面第一个被设置为0或者1的bit位
    Redis高级数据结构之Bitmaps

删除当前redis数据库中key的命令

  • flushdb

Redis高级数据结构之Bitmaps

  • flushall
  • 删除redis中全部key的命令
    Redis高级数据结构之Bitmaps

Bitmaps存储的优势对比

假设有一个网站,用户总量拥有一个亿。每天的日活用户量有5000万。现在我们分别使用集合类型、Bitmaps类型来进行存储活跃用户分析。 假如每一个用户id是Long长整型64位。集合类型的占据空间计算为64x50000000=3200000000位/8=400000000b/1024=390624KB/1024=381.4697265625MB 使用Bitmaps进行存储1位x1亿=1亿(位)/8=12500000b/1024=12207KB/1024=11.9209289MB

假设现在没有一个亿用户,只有50000个用户
集合类型计算就是64x50000=3200000位/8=400000b/1024=390.625KB/1024=0.38MB
Bitmaps类型存储是50000位/8=6250b/1024=60103515625KB/1024=0.059838388480392156MB文章来源地址https://www.toymoban.com/news/detail-471036.html

到了这里,关于Redis高级数据结构之Bitmaps的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 本文通过实例介绍了Redis的基础知识、数据类型、数据结构以及典型应用场景 值得一看!

    作者:禅与计算机程序设计艺术 2017年,Redis是基于MIT许可发布的一个开源的高性能键值数据库,其开发语言为C语言。它提供了多种数据类型(strings、hashes、lists、sets、sorted sets等),分布式支持(可横向扩展),内存存储,持久化功能,事务处理功能等。作为一种高性能的

    2024年02月06日
    浏览(50)
  • 【高级数据结构】树状数组

    目录 树状数组1 (单点修改,区间查询) 树状数组2(区间修改,单点查询) 树状数组1 (单点修改,区间查询) 题目链接:洛谷 树状数组1 题目描述 如题,已知一个数列,你需要进行下面两种操作: 将某一个数加上 x 求出某区间每一个数的和 输入格式 第一行包含两个正

    2024年02月15日
    浏览(34)
  • 数据结构高级算法

      目录 最小生成树 Kruskal(克鲁斯卡尔)(以边为核心) 9) 不相交集合(并查集合) 基础 Union By Size 图-相关题目 4.2 Greedy Algorithm 1) 贪心例子 Dijkstra Prim Kruskal 最优解(零钱兑换)- 穷举法 Leetcode 322 最优解(零钱兑换)- 贪心法 Leetcode 322 3) Huffman 编码问题 问题引入 Huffman 树 Huffm

    2024年02月21日
    浏览(39)
  • 【高级数据结构】线段树

    目录 树状数组1(单点修改,区间查询) 树状数组2(区间修改,单点查询) 线段树1(区间修改,区间查询) 代码源线段树1(查询最小值出现次数)  代码源线段树2(最大字段和) 树状数组1(单点修改,区间查询) 题目链接:  https://www.luogu.com.cn/problem/P3374 代码: 树状

    2024年02月15日
    浏览(25)
  • 【算法 & 高级数据结构】树状数组:一种高效的数据结构(一)

    🚀 个人主页 :为梦而生~ 关注我一起学习吧! 💡 专栏 :算法题、 基础算法~赶紧来学算法吧 💡 往期推荐 : 【算法基础 数学】快速幂求逆元(逆元、扩展欧几里得定理、小费马定理) 【算法基础】深搜 树状数组 (Binary Indexed Tree,BIT)是一种数据结构,用于高效地处理

    2024年03月11日
    浏览(51)
  • 【算法 & 高级数据结构】树状数组:一种高效的数据结构(二)

    🚀 个人主页 :为梦而生~ 关注我一起学习吧! 💡 专栏 :算法题、 基础算法、数据结构~赶紧来学算法吧 💡 往期推荐 : 【算法基础 数学】快速幂求逆元(逆元、扩展欧几里得定理、小费马定理) 【算法基础】深搜 数据结构各内部排序算法总结对比及动图演示(插入排序

    2024年03月26日
    浏览(75)
  • 【高级数据结构】Trie树

    高效地存储和查询字符串的数据结构。所以其重点在于:存储、查询两个操作。 示例和图片来自:https://blog.csdn.net/qq_42024195/article/details/88364485 假设有这么几个字符串:b,abc,abd,bcd,abcd,efg,hii。最终存储出来的Trie图如下图所示: 具体是怎么存的呢?对于每一个字符串,

    2024年03月10日
    浏览(30)
  • C++ 高级数据结构————[ 单调栈 ]

    每周一篇的算法文章来了 今天讲解的是高级数据结构中的——单调栈 单调栈,顾名思义,就是升级版的栈() 先回顾一下栈把 栈 ,是一种线性表,它的特点是只能从一边进出,并且先进后出,后进先出。就想枪的弹夹一样。 而单调栈,跟他有一点不同 单调栈 ,每时每刻

    2023年04月20日
    浏览(26)
  • 索引的数据结构(MySql高级)

    索引是存储引擎用于快速找到数据记录的一种数据结构,就好比一本教科书的目录部分,通过目录中找到对应文章的页码,便可快速定位到需要的文章. MySQL中也是一样的道理,进行数据查找时,首先查看查询条件是否命中某条索引,符合则通过索引查找相关数据,如果不符合

    2024年01月18日
    浏览(31)
  • 高级数据结构 <二叉搜索树>

    本文已收录至《数据结构(C/C++语言)》专栏! 作者:ARMCSKGT 前面我们学习了二叉树,但仅仅只是简单的二叉树并没有很大的用处,而本节的二叉搜索树是对二叉树的升级,其查找效率相对于简单二叉树来说有一定提升,二叉搜索树是学习AVL树和红黑树的基础,所以我们必须先

    2024年02月04日
    浏览(28)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包