Bitmaps 类型的扩展操作|学习笔记

简介: 快速学习 Bitmaps 类型的扩展操作

开发者学堂课程【Redis 入门到精通(进阶篇):Bitmaps 类型的扩展操作】学习笔记与课程紧密联系,让用户快速学习知识

课程地址https://developer.aliyun.com/learning/course/765/detail/13444


Bitmaps 类型的扩展操作

 

目录

,Bitmaps 扩展操作详细解析

,Bitmaps 对应的操作

 

本章主要讲解 Bitmaps 的应用场景以及具体对应的操作

 

一,Bitmaps 扩展操作详细解析

1.业务场景

电影网站

统计每天某一部电影是否被点播

统计每天有多少部电影被点播

统计每周/月/年有多少部电影被点播

统计年度哪部电影没有被点播

2.业务分析

分析情况1:假定有01010011一组数据每天播一部电影用对应的编号存储这时如果想看某一部电影是否被点播首先给一个电影名称之后获取他对应的id.然后把它作为 offset 偏移量直接拿去就可以比如以下图拿出来的值就是对应的零,就是这部电影没有被看过。

分析情况2:如果要去统计有多少部电影被点播,其实看这组数据就能观察出来是一个什么样的特征,只要把里边一的数量给统计一下就可以。这就是有多少部电影被点播过。

分析情况3:如果需要统计每一年每一个月每一周有多少部电影被点播过。应该怎么去做?举例这是一天的数那么可以对每天统计,每天统计以后保存一个数据。用它对应的日期做标记之后可以再来一个这样的指示,第二天之后再来一个第三连着再来一个第四天把这些值放到一起可以求一个操作这里涉及二进制,如果在对应的位置上两个位都是零,它会得到零,只要有一个适宜,它就可以得到一,按照这样的形式,可以看他获完是什么结果为11011001,这就是对应的这一周哪些电影被点播过的一个结果。也就是说,没有必要再去维护一个变量,让它全年运行着,只需要每天运行就可以这样到了年底的时候,就算哪一天数据出现问题也是没有问题的也可以说300多个数据,少一个也无需大碍。这就是我们要想统计长期的这样数据的时候,用前面的每天的数据做一下操作就可以。最后对这里的一统计一下数量就可以

分析情况4:如果想统计年度哪部电影没有被点播刚才的情况中已经统计了全年的电影是否播放的一个最终数据,下面要做的事就是看哪些位是零这些对应的位置对应的电影编号被播放过,如果一年这个电影都没人看的话,就可以考虑把这个电影从你的整个网站上下价格,虽然它会影响电影的存储量比如说我这个电影网站保有五千万部。它会影响这个,但是存储空间是可以腾出来,另外不一定非要真正的存储,可以考虑把它下架掉,之后标明也是可以取的

此图为依次说明分析情况的图可以依次参考

image.png

二,Bitmaps 对应的操作

1.对指定 key 按位进行交、并、非、异或操作,并将结果保存到 destKey 

bitop op destkey keyl [key2...l

and:交 or:并 not:非 xor:异或

以下为老师操作的过程运用到的代码

127.0.0.1:6379> flushdb

OK

127.0.0.1:6379> setbit 20880808 0 1 Cinteger)0

127.0.0.1:6379> setbit 20880808 4 1(integer)0

127.0.0.1:6379> setbit 20880808 8 1(integer)0

127.0.0.1:6379> setbit 20880809 0 1(integer)0

127.0.0.1:6379> setbit 20880809. 5 1 Cinteger)0

127.0.0.1:6379> setbit 20880809 8 1 f27.6 01:6379> bitcount 20880808

Cinteger)3

127.0.0.1:6379> bitcount 20880809(integer)3.

127.0.0.1:6379> setbit 20880808 6 1(integer)0'

127.0.0.1:6379> bitcount 20880808(integer)4

127.0.0.1:6379> bitop or 08-09 20880808 20880809(integer)2

127.0.0.1:6379> bitcount 08-09(integer)5

127.0.0.1:6379>

2.统计指定 key 中1的数量

bitcount key [start end]

首先统计它的数量的 bitcount之后对应的 key 告诉,然后把范围告诉它从哪开始到哪结束,不给就是全统计。

相关文章
|
Kubernetes 监控 网络协议
在K8S中,Pod有几种探针?
在K8S中,Pod有几种探针?
|
12月前
|
IDE iOS开发 Python
小白如何开始使用通义灵码(含安装IDE、安装灵码插件)
PyCharm 和 IntelliJ IDEA 下载安装及通义灵码插件下载安装说明
10501 9
|
存储 关系型数据库 MySQL
9.2 【MySQL】独立表空间结构
9.2 【MySQL】独立表空间结构
170 0
|
容器 Kubernetes 监控
一文看懂 K8s 日志系统设计和实践
上一篇中我们介绍了为什么需要一个日志系统、为什么云原生下的日志系统如此重要以及云原生下日志系统的建设难点,相信DevOps、SRE、运维等同学看了是深有体会的。本篇文章单刀直入,会直接跟大家分享一下如何在云原生的场景下搭建一个灵活、功能强大、可靠、可扩容的日志系统。
|
3天前
|
数据采集 人工智能 安全
|
12天前
|
云安全 监控 安全
|
4天前
|
自然语言处理 API
万相 Wan2.6 全新升级发布!人人都能当导演的时代来了
通义万相2.6全新升级,支持文生图、图生视频、文生视频,打造电影级创作体验。智能分镜、角色扮演、音画同步,让创意一键成片,大众也能轻松制作高质量短视频。
1069 151
|
4天前
|
编解码 人工智能 机器人
通义万相2.6,模型使用指南
智能分镜 | 多镜头叙事 | 支持15秒视频生成 | 高品质声音生成 | 多人稳定对话
|
17天前
|
机器学习/深度学习 人工智能 自然语言处理
Z-Image:冲击体验上限的下一代图像生成模型
通义实验室推出全新文生图模型Z-Image,以6B参数实现“快、稳、轻、准”突破。Turbo版本仅需8步亚秒级生成,支持16GB显存设备,中英双语理解与文字渲染尤为出色,真实感和美学表现媲美国际顶尖模型,被誉为“最值得关注的开源生图模型之一”。
1743 9