【技术栈】Redis 的理解与数据存储格式

news2024/11/13 8:59:47
SueWakeup

                                                      个人主页:SueWakeup

                                                      系列专栏:学习技术栈

                                                      个性签名:保留赤子之心也许是种幸运吧 

本文封面由 凯楠📸 友情提供

目录

相关传送门

 1. NOSQL和关系型数据库比较

 2. 主流的NOSQL产品

 3. Redis的理解

 4.  redis数据存储格式

4.1 String

4.2 Hash

4.3 List

4.4 Set

4.5. sorted_set

注:手机端浏览本文章可能会出现 “目录”无法有效展示的情况,请谅解,点击侧栏目录进行跳转   


本栏传送门

1.【技术栈】Redis 的理解与数据存储格式

2.【技术栈】Redis 中的事务及持久化方式

3.【技术栈】Redis 删除策略

4.【技术栈】Redis 企业级解决方案

5.【数据结构】布隆过滤器

6.【开发】SpringBoot 整合 Redis

7.【技术栈】Spring Cache 简化 Redis 缓存使用


 1. NOSQL和关系型数据库比较

优点:低成本、高查询、存储格式丰富、支持多种数据类型

  1. nosql简单易部署,且多数开源
  2. nosql将数据存储在缓存之中,sql将数据存储在硬盘中;nosql比sql数据库查询速度快
  3. nosql的存储格式是键值对形式,文档形式、图片形式等,可以存储基础类型以及对象或者集合等格式,sql支支持基础数据
  4. 关系型数据库有类似Join的多表查询机制限制扩展很艰难

缺点:维护技术有限、学习使用成本高、不提供关系型数据库对事务的处理

  1. 新技术,维护工具
  2. 不遵循SQL标准,学习使用成本高
  3. 不提供关系型数据库对事务的处理

 2. 主流的NOSQL产品

  • 键值(Key-Value)存储数据库
    • 相关产品: Tokyo Cabinet/Tyrant、Redis、Voldemort、Berkeley DB

    • 典型应用: 内容缓存,主要用于处理大量数据的高访问负载。数据模型: 一系列键值对

    • 优势: 快速查询

    • 劣势: 存储的数据缺少结构化

  • 列存储数据库

    • 相关产品:Cassandra, HBase, Riak

    • 典型应用:分布式的文件系统

    • 数据模型:以列簇式存储,将同一列数据存在一起

    • 优势:查找速度快,可扩展性强,更容易进行分布式扩展劣势:功能相对局限

  • 文档型数据库

    • 相关产品:CouchDB、MongoDB

    • 典型应用:Web应用(与Key-Value类似,Value是结构化的) 数据模型: 一系列键值对

    • 优势:数据结构要求不严格

    • 劣势: 查询性能不高,而且缺乏统一的查询语法

  • 图形(Graph)数据库

    • 相关数据库:Neo4J、InfoGrid、Infinite Graph

    • 典型应用:社交网络数据模型:图结构

    • 优势:利用图结构相关算法。

    • 劣势:需要对整个图做计算才能得出结果,不容易做分布式的集群方案。

数据库排名:http://db-engines.com/en/ranking


 3. Redis的理解

概念:C语言开发的一个开源的高性能键值对存储形式的数据库

特征:

1. 数据之间没有必然的关联关系

2. 内部采用单线程机制进行工作

3. 高性能

4. 多数据类型支持

名称类型数据结构
字符串类型String 

String

列表类型list

LinkedList

散列类型hash

HashMap

集合类型 set

HashSet

有序集合类型sorted_set

TreeSet

5. 持久化支持。可以进行数据灾难恢复


 4.  redis数据存储格式

  • redis自身是一个map所存储的数据都采用键值对的形式存储
  • key部分永远都是字符串,value部分指的是存储的数据的类型
    • key的语法:
    • 在同一个项目中,key部分最好使用统一的命名模式
    • key区分大小写
    • key尽量不超过1024字节。不仅消耗内存,也会降低查找的效率
    • key不易太短,太短会降低可读性

4.1 String

  • 存储的数据:单个数据,最简单最常用的数据存储类型
  • 存储的数据格式:一个存储空间保存一个数据
  • 存储内容:通常使用字符串,如果字符串以整数的形式展示,可以作用数字操作使用

4.2 Hash

  • 存储的困惑:对象类数据的存储如果具有频繁的更新需求会显得笨重
  • 哈希的特点:
    • 存储需求:对一系列存储的数据进行编组,方便管理
    • 存储结构:一个存储空间保存多个键值对数据
    • hash类型:底层使用哈希表结构实现数据存储
  • hash存储结构优化
    • 如果filed数量较少,存储结构优化为类数组结构
    • 如果filed数量较多,存储结构使用HashMap结构

4.3 List

  • 存储需求:存储多个数据,并对数据进入存储空间的顺序进行区分
  • 存储结构:一个存储空间保存多个数据,且通过数据可以体现进入顺序
  • list类型:保存多个数据,底层使用双向链表存储结构实现

4.4 Set

  • 存储需求:存储大量的数据,在查询方面提供更高的效率
  • 存储结构:存储大量的数据,高效的内部存储机制,便于查询
  • set类型:与hash存储结构完全相同,仅存储键,不存储值,并且值是不允许重复的

4.5. sorted_set

  • 存储需求:数据排序 有利于数据的有效展示,需要提供一种可以根据自身特征进行排序的方式
  • 存储结构:新的存储模型,可以保存可排序的数据
  • sorted_set类型:在set的存储结构基础上添加可排序字段

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

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

相关文章

Golang标准库fmt深入解析与应用技巧

Golang标准库fmt深入解析与应用技巧 前言fmt包的基本使用打印与格式化输出函数Print系列函数格式化字符串 格式化输入函数小结 字符串格式化基本类型的格式化输出自定义类型的格式化输出控制格式化输出的宽度和精度小结 错误处理与fmt使用fmt.Errorf生成错误信息fmt包与错误处理…

vue/vite添加地图

最简单的方式&#xff0c;不论vue2、vue3、vite均适用&#xff0c;例如以高德为例&#xff1a; index.html 引入 <scriptsrc"https://webapi.amap.com/maps?v1.4.15&key您的key&pluginAMap.ToolBar,AMap.MouseTool,AMap.DistrictSearch,AMap.ControlBar&quo…

filezilla客户端的应用以及ftplftpwget的用法

filezilla的应用 用户的配置查看上一篇文章FTP3种用户的配置 进入filezilla软件测试 用yy用户登录发现可以上传下载创建删除 再用cc用户登录发现不能上传不能删除不能创建只能下载 ftp&lftp&wget客户端的应用 以命令行的方式连接ftp&#xff0c;一般只会用到上…

MAC废纸篓删掉还能复原吗 MAC废纸篓倾倒掉的文件怎么恢复 删除的东西在哪里可以找回来 怎么找回已删除的文件

MAC系统中的废纸篓&#xff08;Trash&#xff09;通常指用来临时存放用户即将丢弃的文件的地方。MAC系统的废纸篓功能相当于Windows系统的垃圾回收站&#xff0c;通过废纸篓删除的文件&#xff0c;一般是无法从系统中操作还原。那么&#xff0c;MAC废纸篓删掉还能复原吗&#x…

Linux系统(四)- 进程初识 | 环境变量 | 进程地址空间

~~~~ 前言冯诺依曼体系结构&#xff08;重要&#xff09;总览CPU工作方式什么是指令集&#xff1f;CPU为什么只和内存打交道&#xff08;数据交换&#xff09;&#xff1f;木桶效应&#xff1a;在数据层面的结论程序运行为什么要加载到内存&#xff1f; 进一步理解计算机体系结…

应用APM-如何配置Prometheus + Grafana监控springboot应用

文章目录 概述在Spring Boot应用中集成Micrometerspringboot配置修改 Docker安装Prometheus和Grafanaprometheus配置grafana配置启动Prometheus和Grafana在Grafana中配置数据源创建Grafana仪表盘配置Grafana告警&#xff08;可选&#xff09;监控和分析 概述 配置Prometheus和…

NASA数据集——2017 年来自 Arctic-CAP 的大气中 CO、CO2 和 CH4 浓度剖面图

简介 ABoVE: Atmospheric Profiles of CO, CO2 and CH4 Concentrations from Arctic-CAP, 2017 文件修订日期&#xff1a;2019-05-01 数据集版本: 1 数据集摘要 本数据集提供了 2017 年 4 月至 11 月北极碳飞机剖面&#xff08;Arctic-CAP&#xff09;月度采样活动期间阿拉…

MIT的研究人员最近开发了一种名为“FeatUp”的新算法,这一突破性技术为计算机视觉领域带来了高分辨率的洞察力

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

【冥想X理工科思维】场景10:长期项目的焦虑和压力

冥想音频合集&#xff1a;职场解压冥想音频 压力场景&#xff1a; 在长期项目中&#xff0c;如何定期冥想帮我保持耐心和持久性&#xff1f; 点击看大图&#xff1a; 详细说明&#xff1a;通过这个冥想流程&#xff0c;你可以帮助自己在长期项目中保持耐心、坚持和放松的状态。…

SAP前台处理:物料主数据创建<MM01>之会计视图

一、背景&#xff1a; 终于来到了物料主数据&#xff0c;我觉得物料账是SAP最重要的一项发明&#xff0c;也一直是SAP的一项重要优势&#xff0c;物料账记录了一个个物料的生生不息&#xff1b; 本章主要讲解物料主数据和财务相关的主要内容&#xff1a;这里特别提示由于作者…

类和对象-4

文章目录 前言const成员函数取地址及const取地址操作符重载构造函数续explicit static成员友元内部类匿名对象 前言 在前面的文章中&#xff0c;我们了解到了类的四个默认成员函数&#xff1a;构造、析构、拷贝构造和赋值重载。接下来我们会继续学习剩下的两个默认成员函数以及…

CAD建筑版2024 安装教程

CAD建筑版是一种专门用于建筑设计和绘图的CAD软件版本。它提供了专业的建筑设计工具和功能&#xff0c;帮助建筑师、设计师和工程师在建筑领域进行快速、准确和高效的设计工作。 CAD建筑版具备建筑相关的库和元素&#xff0c;用户可以方便地使用预定义的建筑符号和元素进行建筑…

二叉树|104.二叉树的最大深度 111.二叉树的最小深度

104.二叉树的最大深度 力扣题目链接 class solution { public:int getdepth(TreeNode* node) {if (node NULL) return 0;int leftdepth getdepth(node->left); // 左int rightdepth getdepth(node->right); // 右int depth 1 max(leftdepth, rightdepth…

嵌入式-4种经典继电器驱动电路-单片机IO端口/三极管/达林顿管/嵌套连接

文章目录 一&#xff1a;继电器原理二&#xff1a;单片机驱动电路三&#xff1a;经典继电器驱动电路方案3.1 继电器驱动电路方案一&#xff1a;I/O端口灌电流方式的直接连接3.1.1 方案一的继电器特性要求3.1.2 方案一可能会损坏I/O口 3.2 继电器驱动电路方案二&#xff1a;三极…

记录一次基于AES加密的恶意软件逆向分析和解密过程(含文件)

导入(Imports)和字符串 首先,用IDA或Ghidra加载文件test.dat,文件为64位文件 IDA点击View==>Open subviews==>Imports,查看导入信息 Ghidra可以直接看到 可以看到,导入函数有: __printf_chk, malloc, __isoc99_sscanf, putchar, __stack_chk_fail, __cxa_fina…

安捷伦Agilent E8361C网络分析仪

181/2461/8938产品概述&#xff1a; 安捷伦e 8361 c网络分析仪提供通用网络分析&#xff0c;可选软件和/或硬件为您的应用定制-如多端口、脉冲射频等。 安捷伦E8361C网络分析仪的显示窗口数量不限&#xff0c;可以调整大小和重新排列&#xff0c;每个窗口最多有24条活动轨迹和…

CSS 脱离标准文档流 浮动

浮动 在标准流当中&#xff0c;元素或者标签在页面上摆放的时候会出现不如意的地方。要想解决这些问题可以采用脱离标准流的方式来进行解决这些问题&#xff0c;脱离标准流也称为脱离文档流。 脱离标准流的解决方式有三种&#xff0c;一种是浮动&#xff0c;另外一种是固定定位…

【Flask】Flask项目结构初识

1.前提准备 Python版本 # python 3.8.0 # 查看Python版本 python --version 安装第三方 Flask pip install flask # 如果安装失败&#xff0c;可以使用 -i&#xff0c;指定使用国内镜像源 # 清华镜像源&#xff1a;https://pypi.tuna.tsinghua.edu.cn/simple/ 检查 Flask 是…

大数据分析-基于Python的电影票房信息数据的爬取及分析

概要 现如今&#xff0c;人民群众对物质生活水平的要求已不再局限于衣食住行&#xff0c;对于精神文化有了更多的需求。电影在我国越来越受欢迎&#xff0c;电影业的发展越来越迅猛&#xff0c;为了充分利用互联网技术的发展&#xff0c;掌握电影业的态势&#xff0c;对信息进行…

【3GPP】【核心网】【4G】4G手机接入过程,手机附着过程(超详细)

1. 4G手机接入过程&#xff0c;手机附着过程 附着&#xff08;Attach&#xff09;&#xff1a; 终端在PLMN中注册&#xff0c;从而建立自己的档案&#xff0c;即终端上下文 进行附着的三种情况&#xff1a; ①终端开机后的附着&#xff0c;初始附着 ②终端从覆盖盲区返回到…