Redis 高级数据类型
文章目录
- 一、Bitmaps:属性状态统计
- 二、HyperLogLog:基数统计
- 三、GEO:地理位置信息计算
提示:以下是本篇文章正文内容,Redis系列学习将会持续更新
一、Bitmaps:属性状态统计
Bitmaps类型: 统计一批数据的某个属性的某个状态。
统计全国、各省、各市的共产党员:
| 身份id | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
|---|---|---|---|---|---|---|---|
| 是否党员 | 1 | 0 | 1 | 1 | 0 | 0 | 1 |
以二进制方式汇总:1001101
党员的人数 = 二进制数据中1的个数 = 4
Bitmaps类型的基础操作:
● 设置指定key对应偏移量上的bit值,value只能是1或0
setbit key offset value
● 获取指定key对应偏移量上的bit值
getbit key offset
二进制数据:100010011
Bitmaps类型的扩展操作:
● 对指定key按位进行交、并、非、异或操作,并将结果保存到destKey中
bitop op destKey key1 [key2...]and:交or:并not:非xor:异或
● 统计指定key中1的数量
bitcount key [start end]
● Tips:redis 应用于信息状态统计
回到目录…
二、HyperLogLog:基数统计
HyperLogLog类型: 基数统计,是数据集去重后元素个数,运用了 LogLog 算法。
● 添加数据
pfadd key element [element ...]
● 统计数据
pfcount key [key ...]
● 合并数据
pfmerge destkey sourcekey [sourcekey...]
● Tips:redis 应用于独立信息统计
● 相关说明:
- 用于进行基数统计,不是集合,不保存数据,只记录数量而不是具体数据
- 核心是基数估算算法,最终数值存在一定误差
- 误差范围:基数估计的结果是一个带有 0.81% 标准错误的近似值
- 耗空间极小,每个hyperloglog key占用了12K的内存用于标记基数
- pfadd命令不是一次性分配12K内存使用,会随着基数的增加内存逐渐增大
- Pfmerge命令合并后占用的存储空间为12K,无论合并之前数据量多少
回到目录…
三、GEO:地理位置信息计算
GEO类型: 地理位置信息计算。

3-1 两点间距离计算:
● 添加坐标点
geoadd key longitude latitude member [longitude latitude member ...]容器 经度 维度 坐标名称
● 获取坐标点
geopos key member [member ...]
● 计算坐标点距离
geodist key member1 member2 [unit]距离单位

3-2 范围内获取数据:
● 根据点求范围内数据
georadiusbymember key member radius m|km|ft|mi [withcoord] [withdist] [withhash] [count count]容器 坐标名 范围半径 范围单位
● 根据坐标求范围内数据
georadius key longitude latitude radius m|km|ft|mi [withcoord] [withdist] [withhash] [count count]
● 获取指定点对应坐标的哈希值
geohash key member [member ...]
例如:
①构造田字格
②范围内获取
回到目录…
总结:
提示:这里对文章进行总结:
本文是对Redis的学习,学习了redis的3种高级数据类型:Bitmaps(属性状态统计)、HyperLogLog(基数统计)、GEO(地理位置信息计算)。之后的学习内容将持续更新!!!
相关文章:
Redis 高级数据类型
文章目录一、Bitmaps:属性状态统计二、HyperLogLog:基数统计三、GEO:地理位置信息计算提示:以下是本篇文章正文内容,Redis系列学习将会持续更新 一、Bitmaps:属性状态统计 Bitmaps类型: 统计一…...
Java8 新特性-函数式接口
什么是函数式接口 先来看看传统的创建线程是怎么写的 Thread t1 new Thread(new Runnable() {Overridepublic void run() {System.out.println("t1");} }); t1.start();再来看看使用了函数式接口是怎么写的 Thread t2 new Thread(() -> System.out.println(&…...
这套软件测试试卷能打90分,直接入职字节吧
目录 一.填空 二、 判断题(正确的√,错误的╳)共10分,每小题1分 三、数据库部分:(共15分) 四、设计题。本题共 1 小题,满分 20分 一.填空 1、 系…...
GUI可视化应用开发及Python实现
0 建议学时 4学时,在机房进行 1 开发环境安装及配置 1.1 编程环境 安装PyCharm-community-2019.3.3 安装PyQt5 pip install PyQt5-tools -i https://pypi.douban.com/simple pip3 install PyQt5designer -i https://pypi.douban.com/simple1.2 环境配置 选择“…...
【论文简述】GMFlow: Learning Optical Flow via Global Matching(CVPR 2022)
一、论文简述 1. 第一作者:Haofei Xu 2. 发表年份:2022 3. 发表期刊:CVPR oral 4. 关键词:光流、代价体、Transformers、全局匹配、注意力机制 5. 探索动机:过去几年中具有代表性的光流学习框架的核心估计方式没有…...
【Spark分布式内存计算框架——离线综合实战】5. 业务报表分析
第三章 业务报表分析 一般的系统需要使用报表来展示公司的运营情况、 数据情况等,本章节对数据进行一些常见报表的开发,广告数据业务报表数据流向图如下所示: 具体报表的需求如下: 相关报表开发说明如下: 第一、数据…...
力扣-删除重复的电子邮箱
大家好,我是空空star,本篇带大家了解一道简单的力扣sql练习题。 文章目录前言一、题目:196. 删除重复的电子邮箱二、解题1.正确示范①提交SQL运行结果2.正确示范②提交SQL运行结果3.正确示范③提交SQL运行结果4.正确示范④提交SQL运行结果5.其…...
git基础
git-note Github Manual | GitHub Cheat Sheet | Visual Git Cheat Sheet 安装配置工具分支创建仓库.gitignore文件同步更改进行更改重做提交术语表 安装 desktop.github.com | git-scm.com 配置工具 对所有本地仓库的用户信息进行配置 对你的commit操作设置关联的用户名…...
postgres 源码解析50 LWLock轻量锁--1
简介 postgres LWLock(轻量级锁)是由SpinLock实现,主要提供对共享存储器的数据结构的互斥访问。LWLock有两种锁模式,一种为排他模式,另一种是共享模式,如果想要读取共享内存中的内容,需要在读取…...
JVM优化常用命令
jps列出正在运行的虚拟机进程jpstop列出线程CPU或内存占用top top -Hp pid //列出pid全部线程jstat监视虚拟机运行状态信息jstat -gc pid 5000 //每隔5s打印gc情况jmapjmap -heap pid //输出jvm内存情况 jmap -histo:live pid | more //查看堆内存中的对象数量和大小 jma…...
按键中断实验
gpio.c#include"gpio.h"//给gpio使能和设置为输入模式void hal_gpio_init(){//使能GPIOF控制器RCC->MP_AHB4ENSETR|(0x1<<5);//通过GPIOF_将pf9/pf7/pf8设置为输入模式 GPIOF->MODER&(~(0x3<<18));GPIOF->MODER&(~(0x3<<14));GPI…...
kubernetes入门介绍,从0到1搭建并使用
Kubernetes是一个容器编排系统,用于自动化应用程序部署、扩展和管理。本指南将介绍Kubernetes的基础知识,包括基本概念、安装部署和基础用法。 基础介绍 Kubernetes是Google开发的开源项目,是一个容器编排系统,可以自动化部署、…...
【C语言进阶】字符串函数与内存函数的学习与模拟实现
📝个人主页:Sherry的成长之路 🏠学习社区:Sherry的成长之路(个人社区) 📖专栏链接:C语言进阶 🎯长路漫漫浩浩,万事皆有期待 文章目录1.字符串处理函数介…...
【JavaEE初阶】第一节.多线程(进阶篇 ) 常见的锁策略、CAS及它的ABA问题
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、常见的锁策略 1.1 乐观锁 vs 悲观锁 1.2 普通的互斥锁 vs 读写锁 1.3 重量级锁 vs 轻量级锁 1.4 自旋锁 vs 挂起等待锁 1.5 公平…...
Linux基础命令-pstree树状显示进程信息
Linux基础命令-uname显示系统内核信息 Linux基础命令-lsof查看进程打开的文件 Linux基础命令-uptime查看系统负载 文章目录 前言 一 命令介绍 二 语法及参数 2.1 使用man查看命令语法 2.2 常用参数 三 参考实例 3.1 以树状图的形式显示所有进程 3.2 以树状图显示进程号…...
keepalived+LVS配置详解
keepalivedLVS配置详解keepalived简介keepalived的应用场景keepalived工作原理VRRP协议核心组件分层工作工作状态LVS简介LVS三种模式NAT模式(网络地址映射)IPTUN模式(IP隧道)DR模式(直接路由)三种模式对比keepalivedLVS配置1.master配置2. keepalived配置文件3 修改keepalived配…...
Unity之C#端使用protobuf
什么是protobuf protobuf全称Protocol Buffers,由Google推出的一种平台、语言无关的数据交互格式,目前使用最广泛的一种数据格式,尤其在网络传输过程中,有很强的安全性,而且数据量比json和xml要小很多。 最主要的是pr…...
C++设计模式(18)——模板方法模式
亦称: Template Method 意图 模板方法模式是一种行为设计模式, 它在超类中定义了一个算法的框架, 允许子类在不修改结构的情况下重写算法的特定步骤。 问题 假如你正在开发一款分析公司文档的数据挖掘程序。 用户需要向程序输入各种格式…...
SQLserver 索引碎片
Oracle 不需要整理碎片,原因? 1. rowid 默认的索引是B-树索引。索引建立在表中的一个或多个列或者是表的表达式上,将列值和行编号一起存储。行编号是唯一标记表中行的伪列。 行编号是物理表中的行数据的内部地址&am…...
【Storm】【二】安装
1 准备 1.1 准备linux服务器 本文搭建的是3节点的集群,需要3台linux服务器,我这里使用的是centos7版本的linux虚拟机,虚拟机网络配置如下: 主节点: master 192.168.92.90 从节点: slave1 192.168.92.…...
大语言模型在嵌入式系统开发中的应用与挑战
1. 嵌入式系统开发与大语言模型的碰撞 在智能家居、工业自动化和物联网设备蓬勃发展的今天,嵌入式系统作为连接数字世界与物理世界的桥梁,其开发复杂度正呈指数级增长。传统嵌入式开发要求工程师同时具备三大核心能力:理解电子元件特性与电路…...
探索 IwaraDownloadTool:从手动下载到智能嗅探的实践路径
探索 IwaraDownloadTool:从手动下载到智能嗅探的实践路径 【免费下载链接】IwaraDownloadTool Iwara 下载工具 | Iwara Downloader 项目地址: https://gitcode.com/gh_mirrors/iw/IwaraDownloadTool 你是否曾花费数小时在Iwara平台上一一保存心仪的视频内容&…...
手把手教你:把Ubuntu 20.04完整系统塞进U盘,打造随身便携开发环境
手把手打造Ubuntu 20.04便携开发环境:从镜像制作到硬件兼容全指南 在咖啡厅调试代码时发现环境配置丢失?出差临时借用同事电脑却无法运行你的开发工具?这些困扰程序员多年的痛点,其实只需要一个装满完整Ubuntu系统的U盘就能彻底解…...
3个技巧掌握跨平台资源下载神器:如何轻松获取微信视频号、抖音无水印内容?
3个技巧掌握跨平台资源下载神器:如何轻松获取微信视频号、抖音无水印内容? 【免费下载链接】res-downloader 视频号、小程序、抖音、快手、小红书、直播流、m3u8、酷狗、QQ音乐等常见网络资源下载! 项目地址: https://gitcode.com/GitHub_Trending/re/…...
Windows Server 2008上保姆级安装Vcenter Server 5.5(附SSO密码设置避坑指南)
在Windows Server 2008上部署vCenter Server 5.5的完整实践指南对于需要在特定环境中复现传统虚拟化架构的技术人员来说,在Windows Server 2008上安装vCenter Server 5.5仍然是一个具有实际意义的技术挑战。本文将提供一份详尽的安装手册,特别针对老旧系…...
CANN ops-nn:基础神经网络算子的统一实现层
个人主页:ujainu 文章目录 前言仓库定位:为什么需要一层"统一实现"算子不是"公式翻译",是对硬件的谈判Conv2D:im2col 转矩阵乘BatchNorm:推理折叠成逐元素运算Interpolate:双线性插值的…...
3DMAX傻瓜式插件SimpleRope:一键生成绳子软管螺旋线!
3MAX简单绳子插件SimpleRope,从样条线生成螺旋线网格(包括简单的绳子)。本教程将带你全面掌握SimpleRope插件的使用方法,从普通的绳子、柔性的软管,到参数可调的螺旋线,只需一条样条线路径,点击…...
AArch64断点异常机制与调试实践详解
1. AArch64断点异常机制概述断点异常是处理器调试功能的核心机制,它允许开发者在特定条件下暂停程序执行,进入调试状态。在AArch64架构中,断点异常通过DBGBCR_EL1(调试断点控制寄存器)和DBGBVR_EL1(调试断点…...
《当下的力量》7-10章终章解读:从临在到臣服,活出生命的终极自由
《当下的力量》7-10章终章解读:从临在到臣服,活出生命的终极自由终章:这是全书最具力量的部分,它将告诉你如何在最艰难的人生境遇中,依然保持内心的平静与自由前言 在前六章中,我们已经了解了人类痛苦的根源…...
英文会议翻译 app
一个针对开会读取大家说话的内容,过滤掉中文,只对英文的录音进行翻译,翻译的内容实时显示在屏幕上,除非点击停止,否则一直这样动态听并翻译成中文 显示在屏幕上的app,并直接安装在我手机上,并写一篇公众文章…...



