高级数据类型-Bitmaps|学习笔记

简介: 快速学习高级数据类型-Bitmaps

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

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


高级数据类型-Bitmaps

 

在讲解之前需要了解所谓的高级数据类型是为了解决单一的数据类型而存在的它不像是前面学习的5个基础的数据类型它们是有明显的模型特征的本章主要易举例的方式讲解 Bitmaps

 

,Bitmaps 讲解

1.举例

(1).公司年度总会

在公司年度总会上老板在会议上提出一个问题公司的电影网站租凭的服务器马上会到期要进行续费根据往年的经验今年续费的时候容量又要扩大因为电影网站实际上是靠资源大小也是比较大的关于怎么续法员工们各自提出了看法员工A 提出继续续费员工 B 提出是否可以自己搭机房但是由于搭机房需要买相应的服务器还要去管理维护导致它的成本比较高此时员工C 提出是否考虑一下淘汰淘汰什么也就是淘汰服务器上已经常年没有人访问的电影这些电影占着资源并没有去浏览如果这些可以淘汰下来那么今年有可能不需要新的容量甚至有可能降低一些容量老板听完之后觉得员工 C 的方案比较靠谱令员工们先去统计一些情况之后再做续费或否的决定

(2).公司年度总会第二天

这些工作自然的落在令运维人员的身上运维人员向编程员小王提出一些要求要求为查一些信息小王梳理了以下三类信息年度浏览量最低月度浏览量最低周浏览量最低做这些工作时小王作为一名程序员很容易想到把数据库里的数据查一遍他就开始做统计工作首选是用数据库的方案来解决这时精明老道的老王出来看了以后直接告诉小王这个东西不要用数据库redis。应用 redis  时也就会涉及到下面所要讲的存储需求

2.存储需求

当我们存储数据的时候如果是要读取数据里边具体的内容这时数据的存储相对复杂一些但是如果仅仅要的是一个状态这样的存储相对简单一些。像我们日常存储有很多这样的例子,比如说性别男女,明显的就是一个状态开关似的,非黑即白比如说你是不是华侨,比如说你是不是党员,我们从一个是就可以了。此外我们也可以存一个 Y 或者 N, true  或者  force  来进行存储。当然还有一种情况也是比较容易想到的,就是我们存一个数字1或者0就行。使用一个一表示真,使用一个零表示假,这样存储起来性能会比较的高一些,因为它占用的空间小。而对于我们的数据存储来说,如果在不同的语言中存储一个一最小要多大的空间?如果你要将1当成是一个完整的数据来看的话,在各个语言中,最小的单位应该是beat。但实际上我们大家都知道,在计算机上存储数据的最小单元是 beat weight,可以一个 weight  存储。这就是一组数据。一个beat,实际上它存储的是八个状态值,也就是拿出来任意一个数据,我们都可以用最小力度来描述我们真正要保存的数据

此图为讲解八个状态值的举例图

image.png

这张图可以看出八个人都不是党员这时换一个数据

image.png

这张图里可以知道编号为2,5,7的人分别是党员

image.png

这里可以看出都是党员从整个的存储结构上来说,我们已经利用了计算机中最小的存储单位Beat。不可能比这种存储效率再高了,这是一个比较好存储空间节约的方案,但是这样好的存储方案带来麻烦一点儿的东西,就是取这个数据的时候比较麻烦,原取出来是可以直接用了现在,取的时候可能麻烦点儿,需要在这里边按位置去取,另外一个就是改职业比较麻烦,原直接把这个值给改了,现在是改里边某一个 beat 上面的值。也就是,这是一个典型的什么数据结构的思想,拿时间换空间。按照这个思路发展下去,那我们要研究就是这个值该怎么改,这个值该怎么取。对应的两个操作,如果想改某一位上的值哪至少要知道两个第一要改哪一位上,第二准备改成什么样的东西,比如说要改第五位上的改成零和五,这两个数据要知道,如果你想取一个值,最少得知道一个东西。

3.Bitmaps类型的基础操作

1.获取指定 key 对应偏移量上的 bit 值

getbit key offset

2.设置指定 key 对应偏移量上的 bit 值,value 只能是1或0

setbit key offset value

相关文章
|
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
|
9天前
|
人工智能 自然语言处理 API
一句话生成拓扑图!AI+Draw.io 封神开源组合,工具让你的效率爆炸
一句话生成拓扑图!next-ai-draw-io 结合 AI 与 Draw.io,通过自然语言秒出架构图,支持私有部署、免费大模型接口,彻底解放生产力,绘图效率直接爆炸。
687 152
|
11天前
|
人工智能 安全 前端开发
AgentScope Java v1.0 发布,让 Java 开发者轻松构建企业级 Agentic 应用
AgentScope 重磅发布 Java 版本,拥抱企业开发主流技术栈。
655 12
|
6天前
|
SQL 自然语言处理 调度
Agent Skills 的一次工程实践
**本文采用 Agent Skills 实现整体智能体**,开发框架采用 AgentScope,模型使用 **qwen3-max**。Agent Skills 是 Anthropic 新推出的一种有别于mcp server的一种开发方式,用于为 AI **引入可共享的专业技能**。经验封装到**可发现、可复用的能力单元**中,每个技能以文件夹形式存在,包含特定任务的指导性说明(SKILL.md 文件)、脚本代码和资源等 。大模型可以根据需要动态加载这些技能,从而扩展自身的功能。目前不少国内外的一些框架也开始支持此种的开发方式,详细介绍如下。
415 4