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 告诉,然后把范围告诉它从哪开始到哪结束,不给就是全统计。

相关文章
|
7月前
|
存储 自然语言处理 安全
数据结构 - 7(Map和Set 15000字详解)
数据结构 - 7(Map和Set 15000字详解)
64034 16
|
3天前
|
SQL NoSQL Java
Redis数据类型 Hash Set Zset Bitmap HyperLogLog GEO
Redis数据类型 Hash Set Zset Bitmap HyperLogLog GEO
13 0
|
2月前
|
存储 NoSQL Redis
Redis新数据类型-Bitmaps
Redis新数据类型-Bitmaps
|
存储 NoSQL 定位技术
|
存储 运维 NoSQL
高级数据类型-Bitmaps|学习笔记
快速学习高级数据类型-Bitmaps
52 0
高级数据类型-Bitmaps|学习笔记
|
存储 NoSQL Redis
数据类型-sorted_set 类型介绍与基本操作 | 学习笔记
快速学习数据类型-sorted_set 类型介绍与基本操作
70 0
数据类型-sorted_set 类型介绍与基本操作 | 学习笔记
|
存储 JSON NoSQL
数据类型-hash 类型介绍与基本操作 | 学习笔记
快速学习数据类型-hash 类型介绍与基本操作
62 0
数据类型-hash 类型介绍与基本操作 | 学习笔记
|
存储 NoSQL Redis
数据类型-hash 扩展操作与使用注意事项 | 学习笔记
快速学习数据类型-hash 扩展操作与使用注意事项
64 0
|
NoSQL 关系型数据库 MySQL
数据类型-sorted_set 基本操作(2) | 学习笔记
快速学习数据类型-sorted_set 基本操作(2)
55 0
|
存储 NoSQL Redis
数据类型-set 类型介绍与基本操作| 学习笔记
快速学习数据类型-set 类型介绍与基本操作
95 0
数据类型-set 类型介绍与基本操作| 学习笔记