redis03 八种数据类型

思维草图 

String类型 

字符串类型,是redis中最简单的存储类型,可以包含任何数据,例如jpg图片或者序列化的对象等,底层都是以字节数组形式存储,最大能存储512MB的数据。

常用命令

KEY命名规范

加前缀,分层次分模块构建,更方便管理

项目名:业务名:类型:id

如定义

project:user:1
project:equipment:1

根据具体项目规范来定义key值。

如果value是一个Java对象,可以先将对象序列化成Json再存入,这样后面取出来操作也非常方便。

Hash类型 

String类型是将对象序列化成JSON字符串后进行存储,当需要进行修改对象中的某个字段时非常不方便。

Hash类型可以将对象中的每个字段独立存储,可以针对单个字段进行CRUD操作,非常适合用来存储对象

KEYVALUE
fieldvalue
user:12138id        12138
name路明非
age18

常用命令

List类型

一个双向链表结构。

特征

  • 有序
  • 元素可以重复
  • 插入和删除快
  • 查询速度一般

常用来存储一个有序数据,例如:朋友圈点赞列表,评论列表,系统的实时信息变化(网络、内存、cpu)

常用命令

Set类型

可以看做是一个value为null的HashMap。

特征

  • 无序
  • 元素不可重复
  • 查找快
  • 支持交集、并集、差集等功能

常用命令

ZSet类型 

可排序的set集合,ZSet中的每一个元素都带有一个score属性,可以基于score属性对元素排序,底层的实现是一个跳表(SkipList)加 hash表。

特征

  • 可排序
  • 元素不可重复
  • 查询速度快

因为SortedSet的可排序特性(从小到大排序 ),经常被用来实现排行榜这样的功能

常用命令

所有的排名默认都是升序,如果要降序则在命令的Z后面添加REV即可,例如: 

升序获取sorted  set  中的指定元素的排名:   ZRANK  key  member

降序获取sorted  set  中的指定元素的排名:   ZREVRANK  key  memeber

HyperLogLogs基数统计

A = {1, 2, 3, 4, 5}

B = {3, 5, 6, 7, 9}

那么基数(不重复的元素)= {1, 2, 4, 6, 7, 9}

允许容错,即可以接受一定误差,可以是一个带有 0.81% 标准错误的近似值

Bitmap位存储

操作二进制位来进行记录,只有0和1两个状态。

可以用来统计用户登录、未登录,打开、未打卡。两个状态的,都可以使用Bitmap。

比如存储一年的打卡状态需要的内存,365天=365bit,1字节 = 8bit,大概需要 46个字节左右。

如使用bitmap来记录 周一到周日的打卡 0表示未打卡,1表示打卡

查看某一天是否有打卡

统计这一周的打卡情况

geospatial地理位置

这个功能可以推算地理位置的信息,两地之间的距离,方圆几里的人。

地理位置查询网址

传送门icon-default.png?t=N7T8http://www.jsons.cn/lngcode/

添加地址的经纬度 

注意

  • 有效的经度从-180度到180度。
  • 有效的纬度从-85.05112878度到85.05112878度。

当坐标位置超出上述指定范围时,该命令将会返回错误。

获取指定的成员的精度和纬度

计算两地之间的距离

 获取附近以(100, 30)这个坐标为中心,寻找半径为10000km的城市

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

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

相关文章

802.11局域网的 MAC 帧

目录 802.11 局域网的 MAC 帧 802.11 数据帧的三大部分 1.关于 802.11 数据帧的地址 最常用的两种情况 2.序号控制字段、持续期字段和帧控制字段 802.11 局域网的 MAC 帧 802.11 帧共有三种类型:控制帧、数据帧和管理帧。 802.11 数据帧的三大部分 MAC 首部&…

总结springboot启动jar,指定配置文件

第一:覆盖 -- 覆盖系统中的文件中的application-dev.yml文件,两种指定方法都可以 springboot默认优先读取application.properties>application.yml>指定文件(application-dev.yml) 公共配置可以在application.yml,其他配置在applicatio…

基于 STM32U5 片内温度传感器正确测算温度

目录预览 1、引言 2、问题 3、小结 01 引言 STM32 在内部都集成了一个温度传感器,STM32U5 也不例外。这个位于晶圆上的温度传感器虽然不太适合用来测量外部环境的温度,但是用于监控晶圆上的温度还是挺好的,以防止芯片过温运行。 02 问题…

C# - 类与类之间的继承关系判断

Type.IsSubclassof(Type type) 作用:用来确定 一个类是否派生自另一个类/ValueType/Enum/委托 不能用于确定:接口是派生自另一个接口,还是类实现接口 class A{} class B : A{}A a; B b;var boo b.GetType().IsSubclassOf(typeof(A)) // t…

sqllabs第五关floor报错注入

实验环境sqllabs第五关 floor()报错注入的原因是group by在向临时表插入数据时,由于rand()多次计算导致插入临时表时主键重复,从而报错,又因为报错前concat()中的SQL语句或函数被执行,所以该语句报错且被抛出的主键是SQL语句或函…

go语言中的协程和Java中线程以及进程的区别

理解 Go 语言中的协程(Goroutine)、Java 中的线程和进程之间的区别可以从以下几个方面来看: 轻量性: Goroutine(协程): 协程是非常轻量级的执行单位,创建和销毁的成本很低。在 Go 中…

深入理解Lambda表达式:基础概念与实战演练【第114篇—python:Lambda表达式】

深入理解Lambda表达式:基础概念与实战演练 在现代编程语言中,Lambda表达式作为一种轻量级的匿名函数形式,越来越受到程序员的青睐。特别是在函数式编程兴起的今天,Lambda表达式在简化代码、提高可读性方面发挥着重要作用。本文将…

C++笔记(六)--- 静态成员变量/函数(static)

目录 C语言中静态变量 C静态成员变量 C静态成员函数 C语言中静态变量 1.函数内部用static修饰的变量,只能在此函数使用,但所修饰的变量不随函数释放而释放,下次调用时的值仍为上次结束时的值2.static修饰的全局变量只能在其定义的文件使用…

华为OD技术面试案例6-2024年

个人情况:西电本,二战某985基本寄了。知识储备方面:无任何408基础,学校开过数据结构课程60分过,python纯靠自学,无任何刷题经验,无项目经验,简历东拼西凑。 大概是12月底和OD联系&a…

数据可视化原理-腾讯-热力图

在做数据分析类的产品功能设计时,经常用到可视化方式,挖掘数据价值,表达数据的内在规律与特征展示给客户。 可是作为一个产品经理,(1)如果不能够掌握各类可视化图形的含义,就不知道哪类数据该用…

CSP-201712-2-游戏

CSP-201712-2-游戏 解题思路 初始化变量:定义整数变量n和k,分别用来存储小朋友的总数和淘汰的特定数字。然后定义了num(用来记录当前报的数)和peopleIndex(用来记录当前报数的小朋友的索引)。 初始化小朋…

MATLAB环境下基于离散小波变换的体外血管图像处理

下面简要介绍小波变换的部分应用。 信号去噪。小波去噪是根据有效信号和噪声信号在小波变换后表现出的不同特性实现的,一般可用于去除语音、图像、视频等中的噪声信号。小波去噪方法根据对小波系数的非线性处理方式分为三类,分别是小波变换模极大值去噪…

电子电器架构新趋势 —— 最佳着力点:域控制器

电子电器架构新趋势 —— 最佳着力点:域控制器 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师(Wechat:gongkenan2013)。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师…

备战蓝桥杯---状态压缩DP基础1之棋盘问题

它只是一种手段,一种直观而高效地表示复杂状态的手段。 我们先来看一道比较基础的: 直接DFS是肯定不行,我们发现对某一行,只要它前面放的位置都一样,那么后面的结果也一样。 因此我们考虑用DP,并且只有0/…

Vue3+Element-Plus中ELMessage样式丢失处理

Vu3Element-Plus项目中,element-plus使用按需引入有时会出现样式失效和在vscode中使用会报错[找不到名称“ElMessage”。ts(2304)]错误 ELMessage弹框样式丢失处理方法 使用按需引入就不能手动再引入 import { ElMessage } from "element-plus";ElMessage.success…

蓝桥杯-单片机组基础6——定时计数器与外部中断混合使用(附小蜜蜂课程代码)

蓝桥杯单片机组备赛指南请查看这篇文章:戳此跳转蓝桥杯备赛指南文章 本文章针对蓝桥杯-单片机组比赛开发板所写,代码可直接在比赛开发板上使用。 型号:国信天长4T开发板(绿板),芯片:IAP15F2K6…

常见的浏览器跨域解决方法

1. 前端方法&#xff1a;JSONP&#xff08;仅适用于GET请求&#xff09; JSONP&#xff08;JSON with Padding&#xff09;是一种利用<script>标签的src属性不受同源策略限制的特性来实现跨域数据请求的方法。JSONP通过在前端动态创建<script>标签&#xff0c;并将…

4.1.CVAT——目标检测的标注详细步骤

文章目录 1. 进入任务1. 创建任务2. 已创建的task3. 进入标注界面 2. 选择标注类型2.1 选择标注类型2.2 进行标注2.3 遮挡 2.快捷键3.导出标注结果 1. 进入任务 登录后会看到如下图界面&#xff0c;CVAT的标注最小单位是Task&#xff0c;每个Task为一个标注任务。点击Task按钮…

[法规规划]国家数据局局长刘烈宏《激活数据要素价值》演讲要点解析

国家数据局党组书记、局长刘烈宏在北大光华论坛上发表了题为《激活数据要素价值》的演讲&#xff0c;当时曾极大推动了市场热度&#xff0c;引发了行业思考。现在演讲过去了一段时间&#xff0c;但是温故而知新&#xff0c;我们不妨结合演讲之后的市场反应&#xff0c;回顾一下…

蚓链数字化快速转型五步

数字化转型对于许多企业来说是一个头痛的问题&#xff0c;因为他们可能感到缺乏明确的方向和方法。不过&#xff0c;蚓链数字化生态系统提出了一套快速转型五步法&#xff0c;旨在帮助企业明确目标、建立团队、设计权益、提供思维和方法&#xff0c;并共享生态资源&#xff0c;…