12.Redis之补充类型渐进式遍历
1.stream
- 官方文档的意思, 就是 stream 类型
- 就可以用来模拟实现这种事件传播的机制~~
- stream 就是一个队列(阻塞队列)
- redis 作为一个消息队列的重要支撑
- 属于是 List blpop/brpop 升级版本.
- 用于做消息队列
2.geospatial
- 用来存储坐标 (经纬度)
- 存储一些点之后,就可以让用户给定一个坐标,去从刚才存储的点里进行査找.(按照半径,矩形区域.)
- 这个功能在"地图"应用中非常重要~~
3.HyperLogLog
- 应用场景只有一个,估算集合中的元素个数.
- Set,有一个应用场景,统计服务器的 UV(用户访问的次数)
- 使用 Set 当然可以统计 UV,但是最大的问题在于,如果 UV 数据量非常大,Set 就会消耗很多的内存空间~~
- 假设 Set 存储 userld, 每个 userld 按照8个字节算~~
- MB1亿 UV -> 8亿字节~~=>0.8G =>800MB(HyperLogLog 可以最多使用 12KB 空间,实现上述效果~)(不是 Redis 专有的~)
- 之所以, 要消耗这么大的空间Set 需要存储每个元素.
- 而 HyperLogLog 不存储元素的内容.
- 但是能够记录"元素的特征”从而在新增元素的时候,能够知道当前新增的元素,是一个已经存在的元素,还是一个崭新的第一次出现的元素.
- 用来计数 (记录出当前集合中有多少个不同的元素)但是不能告诉你这些元素都是啥~~
- The Redis HyperLogLog implementation uses up to 12 KB and provides a standard error of
0.81% 
- 这个东西具体还是得分析源码~~核心思路"位操作"=>精确性~~(存在一定的误差)
4.bitmaps(只针对整数)
- 使用 bit 位来表示整数.
- 0000 0000 0000 0000 0000 0000 0000 0000
- 位图本质上, 就还是一个 集合.属于是 Set 类型针对整数的特化版本~~(节省空间~~)
- HyperLogLog ~.
更省空间呀!!
既可以存储数字,也可以存储字符串~.不存储元素内容,只是计数效果~~ - hyperloglog 存储元素的时候,提取特征的过程
是不可逆的!!(信息量丢失了) - bitmap,类型存储元素了!!
5.bitfields
- C 进阶,自定义数据类型 =>结构体在内存中的布局
- 位段 (不是 段位) =>也叫做位域
- struct Test {
int a:8;
int b:16;
int c:8; - 此处的数字,就描述这个成员实际占几个 bit 位!!
位域 本质上是让我们精确进行位操作的一种方法~~ - 上述 Redis 中的 bitfield 和C中的位域,非常相似的!!
- bitfield 可以理解成一串二进制序列(字节数组)
- 同时可以把这个字节数组中的某几个位,赋予特定的含义, 并且可以进行 读取/修改/算术运算 相关操作~~
6.渐进式遍历
- keys keys *一次性的把整个 redis 中所有的 key 都获取到.(这个操作比较危险.可能会一下子得到太多的 key, 阻塞 redis 服务器!)
- 通过渐进式遍历,就可以做到,既能够获取到所有的 key, 同时又不会卡死服务器~
- 不是一个命令,把所有的 key 都拿到.
而是每执行一次命令,只获取到其中的一小部分~~这样的话保证当前这一次操作不会太卡~~
要想得到所有的 key 就需要多次遍历了~~多次执行渐进式遍历命令(化整为零~)
6.1 scan
以渐进式的⽅式进⾏键的遍历。
SCAN cursor [MATCH pattern] [COUNT count] [TYPE type]命令有效版本:2.8.0 之后时间复杂度:O(1)返回值:下⼀次 scan 的游标(cursor)以及本次得到的键。
redis 127.0.0.1:6379> scan 01) "17"2) 1) "key:12"2) "key:8"3) "key:4"4) "key:14"5) "key:16"6) "key:17"7) "key:15"8) "key:10"9) "key:3"10) "key:7"11) "key:1"redis 127.0.0.1:6379> scan 171) "0"2) 1) "key:5"2) "key:18"3) "key:0"4) "key:2"5) "key:19"6) "key:13"7) "key:6"8) "key:9"9) "key:11"![]()
![]()
- count 这里的 数字,不是说每次遍历都得设置成一样~~
- 这里的渐进式遍历,在遍历过程中,不会在服务器这边存储任何的状态信息此处的遍历是随时可以终止的~~不会对服务器产生任何的副作用~~
渐进性遍历 scan 虽然解决了阻塞的问题,但如果在遍历期间键有所变化(增加、修改、删除),可能导致遍历时键的重复遍历或者遗漏,这点务必在实际开发中考虑。![]()
相关文章:
12.Redis之补充类型渐进式遍历
1.stream 官方文档的意思, 就是 stream 类型就可以用来模拟实现这种事件传播的机制~~stream 就是一个队列(阻塞队列)redis 作为一个消息队列的重要支撑属于是 List blpop/brpop 升级版本.用于做消息队列 2.geospatial 用来存储坐标 (经纬度)存储一些点之后,就可以让用户给定…...
品牌做电商控价的原因
品牌控价确实是一项至关重要的任务,它关乎着品牌形象、市场定位以及长期发展的稳定性。在电商平台上,价格的公开性和透明度使得消费者、经销商和其他渠道参与方都能够轻易地进行价格比较。因此,品牌方必须对电商渠道的价格进行严格的管控&…...
安全面试中的一个基础问题:你如何在数据库中存储密码?
3分钟讲解。 上周的面试故事 职位:初级安全工程师,刚毕业。 开始面试。 我:“这里你提到对数据安全有很好的理解。你能举例说明哪些方面的数据安全吗?” A:“当然。例如,当我们构建一个系统时,会…...
【python深度学习】——torch.min()
【python深度学习】——torch.min 1. torch.min()1.1 计算整个张量的最小值1.2 沿特定维度计算最小值1.3 比较两个张量 1. torch.min() torch.min()接受的参数如下: input: 输入的张量。dim: 沿指定维度寻找最小值。如果指定了该参数,返回一个元组,其中…...
华为校招机试 - 最久最少使用缓存(20240508)
题目描述 无线通信移动性需要在基站上配置邻区(本端基站的小区 LocalCell 与周边邻基站的小区 NeighborCelI 映射)关系, 为了能够加速无线算法的计算效率,设计一个邻区关系缓存表,用于快速的通过本小区 LocalCell 查询到邻小区 NeighborCell。 但是缓存表有一定的规格限…...
第三部分:领域驱动设计之分析模式和设计模式应用于模型
分析模式 分析模式是一种概念集合,用来表示业务建模中的常见结构。它可能只与一个领域有关,也可能跨越多个领域。“分析模式”这个名字本身就强调了其概念本质。分析模式并不是技术解决方案,他们只是些参考,用来指导人们设计特定领…...
PID传感器在光电显示行业VOC气体检测的应用
随着光电显示技术的飞速发展,液晶显示器等显示器件产品已经成为我们日常生活和工作中不可或缺的一部分。然而,在生产过程中,液晶显示器会释放大量的挥发性有机物(VOC)气体,对生产环境及工作人员的健康构成威…...
iOS推送证书过期处理
苹果推送证书的有效期都是一年,将要过期的时候,苹果官方会发邮件提醒。 一、过期 在电脑上找到并打开其它->钥匙串访问; 我的证书可以看到各个App的推送证书,如果过期了,显示红色X 二、重新创建 1、登陆apple开…...
蓝海卓越计费管理系统 agent_setstate.php SQL注入漏洞复现
0x01 产品简介 蓝海卓越计费管理系统是一套以实现网络运营为基础,增强全局安全为中心,提高管理效率为目的的网络安全运营管理系统,提供“高安全、可运营、易管理”的运营管理体验,基于标准的RADIUS协议开发,它不仅支持PPPOE和WEB认证计费,还支持802.1X接入控制技术,与其…...
【leetcode2765--最长交替子数组】
要求:给定一个数组,找出符合【x, x1,x,x-1】这样循环的最大交替数组长度。 思路:用两层while循环,第一个while用来找到符合这个循环的开头位置,第二个用来找到该循环的结束位置,并比较一下max进行记录。 …...
java文档管理系统的设计与实现源码(springboot+vue+mysql)
风定落花生,歌声逐流水,大家好我是风歌,混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的文档管理系统的设计与实现。项目源码以及部署相关请联系风歌,文末附上联系信息 。 项目简介: 文档管理系统的…...
西安航空学院电子工程学院领导莅临泰迪智能科技参观交流
5月26日,西安航空学院电子工程学院院长杨亚萍、专业教师刘坤莅临广东泰迪智能科技股份有限公司产教融合实训基地参观交流。泰迪智能科技董事长张良均、副总经理施兴、产品中心负责周东平、校企合作经理吴桂锋与泰迪智能科技韩伟进行热情了接待。双方就专业建设、协同…...
C++|设计模式(二)|简单工厂和工厂方法模式
本文探讨两种广泛使用的创建型模式——简单工厂模式和工厂方法模式,解释他们的实现细节、优势以及应用场景。 在下一篇文章中,我会补充抽象工厂模式,其实工厂模式主要就是为了封装对象的创建过程,如果我们不进行封装,…...
C语言从头学12——流程控制(一)
C语言程序的执行顺序是从前到后依次序执行的。如果想要控制程序执行的流程,就必须使用 流程控制的语法结构,分为条件执行和循环执行。 1、if语句 if 语句在前面的举例中曾经出现过,这里做详细介绍。该语句用于条件判断,满…...
10大领域应该怎么记?
文章目录 5大过程组10大领域49个过程输出输入工具与技术 参考文档: https://mp.weixin.qq.com/s/BJ-Dpn0zxTP0TCbeoJXb9A 5大过程组 启动、规划、执行、监控、收尾 10大领域 巧记:【挣饭进城市,咨购风菜干】【狗子整范进—成人风采】 整…...
通过Ubuntu虚拟机+Linux移植LVGL并通过linux Frame buffer显示
文章参考:https://gitee.com/socbis/linux-lvgl lvgl on linux Frame buffer 主机环境: Ubuntu 18.04lvgl 8.0.1 获取源码并运行demo 获取源码 需要3样东西来构建demo : lvgl核心控件库: 从此处获取源码 lvgl,选择版本 Release v8.0.1. 显示和触摸接…...
M功能-支付平台(三)
target:离开柬埔寨倒计时-221day 前言 今天周六,但是在柬埔寨还是工作日,想着国内的朋友开始休周末就羡慕呀,记不清在这边过了多少个周六了,多到我已经习惯了。而且今天技术部还停电了,真的是热的受不了呀…...
5G工厂长啥样
5G工厂是一种新型的工业互联网基础设施,利用5G为代表的新一代信息通信技术集成,打造新型工业互联网基础设施。在5G工厂中,自动化和智能化设备广泛使用,高度互联的工厂网络得以实现,远程监控和管理成为可能,…...
使用Python操作Jenkins
大家好,Python作为一种简洁、灵活且功能丰富的编程语言,可以与各种API轻松集成,Jenkins的API也不例外。借助于Python中的python-jenkins模块,我们可以轻松地编写脚本来连接到Jenkins服务器,并执行各种操作,…...
网络协议测试仪设计方案:474-便携式手提万兆网络协议测试仪
便携式手提万兆网络协议测试仪 一、平台简介 便携式手提万兆网络协议测试仪,以FPGA万兆卡和X86主板为基础,构建便携式的手提设备。 FPGA万兆卡是以Kintex-7XC7K325T PCIeX4的双路万兆光纤网络卡,支持万兆网络数据的收发和网络协议…...
HarmonyOS 6 Chip 组件:设置默认后缀图标使用文档
文章目录代码默认后缀图标核心配置1. 启用默认关闭图标2. 显示优先级规则3. 关联配置项代码解析1. 启用默认后缀图标2. 不冲突条件3. 整体结构总结默认后缀图标即 Chip 内置关闭图标,由系统提供样式、尺寸、交互逻辑,无需配置图片资源,只需开…...
工业设备数据采集太难?这款.NET8边缘网关,轻松搞定多协议对接
🌈前言如今工业数字化、智能化转型脚步越来越快,工厂现场各类 PLC、仪表、传感器设备型号繁杂,通信协议五花八门,设备数据采集难、协议对接繁琐、多设备统一管控麻烦,一直是很多制造企业、工控从业者头疼的实际问题。市…...
终极指南:如何使用qmc-decoder快速解密QMC音频文件 [特殊字符]
终极指南:如何使用qmc-decoder快速解密QMC音频文件 🎵 【免费下载链接】qmc-decoder Fastest & best convert qmc 2 mp3 | flac tools 项目地址: https://gitcode.com/gh_mirrors/qm/qmc-decoder qmc-decoder是一款专为QQ音乐用户设计的QMC音…...
vue3+vite+springboot路径配置:维护统一的baseUrl
提交表单:try…catch 捕获异常,如果校验失败,前台页面会有错误提示。 const submitForm async () > {try {await formRef.value.validate(); // 校验失败会抛出异常const submitData { ...formData };submitData.allowedSubmitTypes su…...
虚幻5细节面板消失的真相与四步唤醒方案
1. 这不是Bug,是虚幻5蓝图编辑器的“细节面板隐身术”在作祟2025年用虚幻引擎5做项目,突然发现蓝图编辑器右侧的细节面板(Details Panel)怎么点都不出来——节点选中了没反应,右键菜单里找不到“显示细节”,…...
别再硬啃旧SDK了!用Unity 2021.3 + OpenXR搞定Vive Pro Eye眼动数据采集(附避坑指南)
现代VR眼动追踪开发指南:Unity 2021.3与OpenXR实战 在VR技术快速迭代的今天,眼动追踪已成为提升沉浸感的关键技术。Vive Pro Eye作为行业标杆设备,其开发方式正经历从私有SDK到开放标准的重大转变。本文将带你跨越技术代沟,掌握基…...
UxPlay应用场景:从家庭娱乐到企业演示的全面解决方案
UxPlay应用场景:从家庭娱乐到企业演示的全面解决方案 【免费下载链接】UxPlay AirPlay Unix mirroring server 项目地址: https://gitcode.com/gh_mirrors/uxp/UxPlay UxPlay是一款功能强大的AirPlay Unix镜像服务器,它让Linux、macOS和Unix系统能…...
离子原生QAOA算法:量子优化新突破
1. 离子原生QAOA算法概述量子近似优化算法(Quantum Approximate Optimization Algorithm, QAOA)是近年来量子计算领域最具前景的算法之一,特别适用于解决组合优化问题。该算法通过交替应用问题哈密顿量和混合哈密顿量,构建参数化量…...
AI如何从“0”到“1”设计一把完美的“蛋白钥匙”?
你是否想过,在微观的生命世界里,无数的生命活动都像是一把把精密的钥匙打开一把把特定的锁?蛋白质之间的相互作用正是这套机制的核心。找到那把独一无二的“钥匙”,一直是生命科学研究者们追求的目标。 过去的挑战:大…...
免费图片去水印工具在线网站有哪些?2026年图片水印去除APP和软件推荐
在日常工作和生活中,我们经常会遇到需要去除图片水印的情况。无论是为了社交媒体分享、内容创作还是素材整理,找到一款高效的免费去水印工具都能节省不少时间。本文将为你详细介绍2026年最实用的免费图片去水印工具,包括在线网站、手机APP和电…...



