高级数据类型

news2024/11/15 6:54:15

为了解决单一的业务而存在

bitmaps

Bitmaps类型的基础操作

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

getbit key offset

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

setbit key offset value

Bitmaps类型的扩展操作

状态位的统计

业务需求:

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

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

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

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

解决方案

1.只需要查bitmaps里1的数量

2.

3.用日期做key统计

4.按位取或 or

Bitmaps类型的扩展操作

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

bitop op destKey key1 [key2...]

 and:交

 or:并

 not:非

 xor:异或

统计指定key中1的数量

bitcount key [start end]

HyperLogLog

统计不重复的数据的数量

redis 应用于独立信息统计

统计独立UV

原始方案:set

存储每个用户的id(字符串)

改进方案:Bitmaps

存储每个用户状态(bit)

全新的方案:Hyperloglog

基数统计

基数是数据集去重后元素个数

 HyperLogLog 是用来做基数统计的,运用了LogLog的算法

LogLog算法

HyperLogLog类型的基本操作

 添加数据

pfadd key element [element ...]

 统计数据

pfcount key [key ...]

 合并数据

pfmerge destkey sourcekey [sourcekey...]

相关说明

 用于进行基数统计,不是集合,不保存数据,只记录数量而不是具体数据

 核心是基数估算算法,最终数值存在一定误差(数据量过大有误差0.81%)

 误差范围:基数估计的结果是一个带有 0.81% 标准错误的近似值

 耗空间极小,每个hyperloglog key占用了12K的内存用于标记基数

 pfadd命令不是一次性分配12K内存使用,会随着基数的增加内存逐渐增大

 Pfmerge命令合并后占用的存储空间为12K,无论合并之前数据量多少

GEO

只算水平位置

GEO类型的基本操作

 添加坐标点

geoadd key longitude latitude member [longitude latitude member ...]

 获取坐标点

geopos key member [member ...]

 计算坐标点距离

geodist key member1 member2 [unit]

GEO类型的基本操作

 添加坐标点

georadius key longitude latitude radius m|km|ft|mi [withcoord] [withdist] [withhash] [count count]

 获取坐标点

georadiusbymember key member radius m|km|ft|mi [withcoord] [withdist] [withhash] [count count]

 计算经纬度

geohash key member [member ...]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/357804.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

云计算ACP云服务器ECS实例题库(三)

😘作者简介:一名99年软件运维应届毕业生,正在自学云计算课程。👊宣言:人生就是B(birth)和D(death)之间的C(choise),做好每一个选择。&…

关于监控服务器指标、CPU、内存、警报的一些解决方案

文章目录关于监控服务器指标、CPU、内存、警报的一些解决方案Prometheus Grafana 配置 IRIS / Cach 监控服务器Prometheus简介特点架构图Grafana简介特点配置流程自定义Prometheus接口定义配置 Exporter 监控服务器系统资源简介配置流程使用 Alertmanager报警简介配置流程基于…

软考高级-信息系统管理师之知识管理(最新版)

知识管理 知识与知识管理知识管理常用的方法和工具显性知识的管理隐形知识的管理知识管理的工具学习型组织知识产权保护计算机软件保护条例商标法专利法补充建议学的考点:知识与知识管理 1、知识的分类 知识可分为两类,分别是显性知识与隐性知识。 凡是能以文字与数字来表达…

【C++】关联式容器——map和set的使用

文章目录一、关联式容器二、键值对三、树形结构的关联式容器1.set2.multiset3.map4.multimap四、题目练习一、关联式容器 序列式容器📕:已经接触过STL中的部分容器,比如:vector、list、deque、forward_list(C11)等,这些容器统称为…

新能源汽车,有毒

作者| Mr.K 编辑| Emma来源| 技术领导力(ID:jishulingdaoli)新能源汽车到底有多火,生生逼得奥迪某4S店挂出横幅:我们也有纯电新能源!老牌名车的辛酸憋屈溢出屏幕。网友神评补刀“这标语给人‘诺基亚也有智能大屏机’的感觉。”一…

【Java基础】变量

Java基础 变量 variable 变量类型 实例变量(非静态字段) Instance Variables (Non-Static Fields) 类的非静态属性 类变量(静态字段) Class Variables (Static Fields) 类的静态属性 局部变量 Local Variables 参数 Parameters 变量命名 大小写敏感 开头:字…

爬虫基本知识的认知(爬虫流程 HTTP构建)| 爬虫理论课,附赠三体案例

爬虫是指通过程序自动化地从互联网上获取数据的过程。 基本的爬虫流程可以概括为以下几个步骤: 发送 HTTP 请求:通过 HTTP 协议向指定的 URL 发送请求,获取对应的 HTML 页面。解析 HTML 页面:使用 HTML 解析器对获取的 HTML 页面…

linux shell 入门学习笔记4 shell运维和编程语言

shell 运维和编程语言 脚本注释 shell脚本中,#后面的内容表示注释内容,一般是给开发者或使用者观看,解释器会忽略此部分内容注释可以单独写一行,也可以跟在文件末尾保持注释的习惯,尽量使用英文 例子: #…

C++类和对象(2)构造、析构函数

类的6个默认成员函数 如果一个类中什么成员都没有,简称为空类。 class Date{}; 空类中真的什么都没有吗?并不是,任何类在什么都不写时,编译器会自动生成以下6个默认成员 函数。 默认成员函数:用户没有显式实现&…

什么是健康建筑?

WIKIPEDIA健康建筑是指支援建筑和建筑环境中人们,身体、心理和社会健康与福祉的新兴兴趣领域。建筑物可以成为健康和福祉的关键促进者,因为大多数人大部分时间都花在室内。根据全美国人类活动模式调查,美国人「平均 87% 的时间花在封闭的建筑…

redis-如何保证数据库和缓存双写一致性?

前言 数据库和缓存(比如:redis)双写数据一致性问题,是一个跟开发语言无关的公共问题。尤其在高并发的场景下,这个问题变得更加严重。 我很负责的告诉大家,该问题无论在面试,还是工作中遇到的概率…

windows版Rsync服务端和客户端cwRsync_4.1.0安装测试

下载地址:https://download.csdn.net/download/qq_32421489/87463506 服务端安装: cwRsyncServer(服务端)配置步骤 1.双击运行wRsyncServer_4.1.0_Installer.exe。 2.这里创建的账户是操作系统的,创建的这个账户是专…

【 RA4M2开发板环境搭建之串口下载1】

【 RA4M2开发板环境搭建1】1. 前言1.1 活动来源1.2 开发环境1.3 RA4M2开发板2. MDK环境准备2.1 keil 5下载安装2.2 安装RA4M2的软件支持包2.3 Renesas Flash Programmer安装3. RA Smart Configurator配置3.1 下载RA Smart Configurator3.2 安装RA Smart Configurator4. 新建RA4…

你是真的“C”——C语言详解求两个正数最小公倍数的3种境界

C语言详解求两个正数最小公倍数的3种境界~😎前言🙌必备小知识~😘求最小公倍数境界1~ 😊求最小公倍数境界2~ 😊求最小公倍数境界3~ 😊总结撒花💞博客昵称:博客小梦😊 最喜…

[Incognito 4.0] ictf 2023

一周4赛,有点赶不过来呀。只做了一点,队长组队的时候(每次都中间断掉,一大堆写的都得从头来)CryptoAncient这样的第2次见,第1次就不会,这回看了队友wp终于知道是怎么加密的了Templed每个符号可以表示4位10进制数。原题…

〖产品思维训练白宝书 - 核心竞争力篇⑭〗- 产品经理核心竞争力解读之学习能力

大家好,我是 哈士奇 ,一位工作了十年的"技术混子", 致力于为开发者赋能的UP主, 目前正在运营着 TFS_CLUB社区。 💬 人生格言:优于别人,并不高贵,真正的高贵应该是优于过去的自己。💬 &#x1f4e…

路径规划 | 图解跳点搜索JPS算法(附ROS C++/Python/Matlab仿真)

目录0 专栏介绍1 A*算法的弊端2 跳点搜索算法2.1 自然与强制邻点2.2 跳点剪枝策略3 算法仿真与实现3.1 算法流程3.2 ROS C实现3.3 Python实现3.4 Matlab实现0 专栏介绍 🔥附C/Python/Matlab全套代码🔥课程设计、毕业设计、创新竞赛必备!详细…

2. Unity操作基础知识

1. 创建新项目 双击打开 unity hub管理器,点击左侧栏中的 项目 选项卡,在右上角点击 新项目 按钮,进入项目创建页面: 在项目创建页面中,选择合适的模板,并设置项目名称,选择项目保存位置&…

【郭东白架构课 模块一:生存法则】12|法则五:如何提升一个架构设计的外部适应性?

你好,我是郭东白。 上节课我们讲了外部适应性这个概念,也强调了架构师的职责是通过架构活动为企业不断注入外部适应性,从而帮助企业更好地实现它的战略意图。 那么该怎么注入呢? 上节课在讲影响技术体系外部适应性的因素这部分…

MYSQL---第四次索引视图

学生表:Student (Sno, Sname, Ssex , Sage, Sdept) 学号,姓名,性别,年龄,所在系 Sno为主键 课程表:Course (Cno, Cname,) 课程号,课程名 Cno为主键 学生选课表:SC (…