redis03 八种数据类型

news2024/11/15 16:52:49

思维草图 

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.coloradmin.cn/o/1484221.html

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

相关文章

Vue3 循环渲染 v-for

v-for 指令:用于循环渲染列表数据。 v-for 指令:可以循环数组、对象、字符串【不常用】、指定次数【很少用】。 key 属性:用于给标签添加一个唯一的标识。 key 属性:推荐使用 id、手机号、身份证号、学号 等唯一值。 注&#…

如何查看docker容器里面运行的nginx的配置文件哪

要查看Docker容器内运行的Nginx配置文件的位置,你可以通过进入容器的shell环境来直接查看。Nginx的默认配置文件通常位于/etc/nginx/nginx.conf,而网站特定的配置文件通常位于/etc/nginx/conf.d/目录中。以下是步骤来查看这些配置文件: 步骤…

挑战杯 基于机器视觉的车道线检测

文章目录 1 前言2 先上成果3 车道线4 问题抽象(建立模型)5 帧掩码(Frame Mask)6 车道检测的图像预处理7 图像阈值化8 霍夫线变换9 实现车道检测9.1 帧掩码创建9.2 图像预处理9.2.1 图像阈值化9.2.2 霍夫线变换 最后 1 前言 🔥 优质竞赛项目系列,今天要分…

软考54-上午题-【数据库】-关系模式的范式-真题

一、范式总结 第一步,先求候选码,由此得到:主属性、非主属性。 二、判断部分函数依赖的技巧 【回顾】:部分函数依赖 (X,Y)——>Z; X——>Z 或者 Y——>Z 题型:给…

Vue2:路由history模式的项目部署后页面刷新404问题处理

一、问题描述 我们把Vue项目的路由模式,设置成history 然后,build 并把dist中的代码部署到nodeexpress服务中 访问页面后,刷新页面报404问题 二、原因分析 server.js文件 会发现,文件中配置的路径没有Vue项目中对应的路径 所以…

【打工日常】使用docker部署在线Photopea用于linux下替代ps

一、Photopea介绍 linux没有ps适配,对于有时候工作来说确实不方便,我找了很久,才找到了一款功能可以跟ps接近的在线软件,使用docker部署就可以了。它是ps的最佳替代品之一,其界面几乎与ps相同,只不过它是在…

Ban for 1 day (wangzherongyao) 2024.03.02

王者荣耀禁赛1天 单排真的要保持【心态】,即便队友是这种,也要克制,不然接着就开始【连败】。 为什么我玩射手和法师喜欢提早第一件第二件出【梦魇】和【制裁】,因为对面有回复英雄就是一个风险,早做应对!…

降低85%的gc发生率:ES的GC调优实践!

#大数据/ES #经验 #性能 ES的服务日志出现一些gc overhead现象,经过调优对比,gc发生率显著下降了85%,分享参数如下: ES的G1GC参数(多实例) -XX:UseG1GC -XX:MaxGCPauseMillis200 -XX:InitiatingHeapOccu…

拒绝机械风,让ChatGPT像真人一样对话

拒绝机械风,让ChatGPT像真人一样对话 在这个信息爆炸的时代,人工智能技术的快速发展让我们的生活变得更加便捷。 特别是在自然语言处理领域,ChatGPT的出现无疑是一次革命性的进步。 然而,虽然ChatGPT在很多方面表现出了惊人的能…

蜘蛛蜂优化算法SWO求解不闭合SD-MTSP,可以修改旅行商个数及起点(提供MATLAB代码)

1、蜘蛛蜂优化算法SWO 蜘蛛蜂优化算法(Spider wasp optimizer,SWO)由Mohamed Abdel-Basset等人于2023年提出,该算法模型雌性蜘蛛蜂的狩猎、筑巢和交配行为,具有搜索速度快,求解精度高的优势。VRPTW&#x…

电源通常向计算机内部的各种组件提供的三种电压:1

本文将与您分享电源通常为计算机内部各个组件提供的三种电压是什么。 小编觉得还是比较实用的,所以分享给大家,作为参考。 下面就跟随小编一起来看看吧。 电源通常为电脑内部的各个部件提供三种电压: 1. 5V,主要供给主…

web自动化笔记十:UnitTest基本使用

一、UnitTest框架 ①、什么是框架? 1、框架英文单词framework 2、为解决一类事情的功能集合 ②、为什么使用UnitTest框架 1、批量执行用例 2、提供丰富的断言知识 3、可以…

【每日一题】3.2 求逆序对

题目描述 给定一个长度为 n的整数数列&#xff0c;请你计算数列中的逆序对的数量。 逆序对的定义如下&#xff1a;对于数列的第 i个和第 j个元素&#xff0c;如果满足 i<j 且 a[i]>a[j]&#xff0c;则其为一个逆序对&#xff1b;否则不是。 输入格式 第一行包含整数 n…

stable diffusion webUI之赛博菩萨【秋葉】——工具包新手安裝与使用教程

stable diffusion webUI之赛博菩萨【秋葉】——工具包新手安裝与使用教程 AI浪潮袭来&#xff0c;还是学习学习为妙赛博菩萨【秋葉】简介——&#xff08;葉ye&#xff0c;四声&#xff0c;同叶&#xff09;A绘世启动器.exe&#xff08;sd-webui-aki-v4.6.x&#xff09;工具包安…

运筹学_1.1.4 线性规划问题-解的概念

1.1.4 线性规划问题-解的概念 一、可行解与最优解二、基的概念三、基变量、基向量&#xff1b;非基变量、非基向量&#xff1b;基解、基可行解&#xff1b;四、最优解与可行解、基可行解的关系五、用例题&#xff08;枚举法&#xff09;巩固基解、基可行解、最优解三个概念1、例…

5.CVAT用户角色

文章目录 1. CVAT 用户角色1.1. CVAT.ai 中的全局角色1.2. CVAT.ai 中的组织角色1.3. job工作状态1.4. 分配任务1.4.1. 分配标注人1.4.2. 指派审阅者1.4.3. 分配校对人 2. 组织2.1. 个人工作区2.2. 创建新组织在组织之间切换 2.3. “组织”页面2.4. 邀请成员加入组织&#xff1…

手动实现一个简单的 HTTP 请求

本文我们通过 Socket&#xff0c;写一个 HTTP 协议&#xff0c;直观的感受一下上篇文章中的请求和响应。 定义 socket server 通过上篇文章&#xff0c;我们知道 HTTP 协议底层是通过 Socket 实现的&#xff0c;所以我们先通过 socket 定义一个 server import socket#初始化 …

蓝桥杯备战刷题four(自用)

1.砝码称重 #include <iostream> #include <vector> using namespace std; const int N110; const int M100010; int w[N]; int n; int f[N][M]; int m; int ans; //f[i][j]表示到第i个砝码进行放置时的称得的重量为j的方案数 int main() {cin>>n;for(int i1…

JVM 第四部分—垃圾回收相关概念 2

System.gc() 在默认情况下&#xff0c;通过System.gc()或者Runtime.getRuntime().gc()的调用&#xff0c;会显式触发Full GC&#xff0c;同时对老年代和新生代进行回收&#xff0c;尝试释放被丢弃对象占用的内存 然而System.gc()调用附带一个免责声明&#xff0c;无法保证对垃…

Springboot+vue的商业辅助决策系统的设计与实现(有报告)。Javaee项目,springboot vue前后端分离项目

演示视频&#xff1a; Springbootvue的商业辅助决策系统的设计与实现&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot vue前后端分离项目 项目介绍&#xff1a; 本文设计了一个基于Springbootvue的前后端分离的商业辅助决策系统的设计与实现&#xff0c;采…