【开发】Redis 的理解与数据存储格式

 目录

相关传送门

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.【数据结构】布隆过滤器

2.【开发】SpringBoot 整合 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

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

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

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

数据库排名:

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的存储结构基础上添加可排序字段

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

旅游行业分析及媒体邀约资源汇总

传媒如春雨,润物细无声,大家好,我是51媒体网胡老师。 酒店旅游行业分析及媒体邀约资源汇总是两个相对独立但又相互关联的领域。下面将分别对这两个方面进行概述。 酒店旅游行业分析 1. 市场概况 市场规模:评估市场的总价值、增长…

云原生(四)、Docker-Compose

Docker-Compose Docker Compose 是一个用于定义和运行多容器 Docker 应用程序的工具。它使用一个简单的 YAML 文件来配置应用程序的服务、网络和卷,从而使得在不同环境中轻松部署应用程序变得更加简单和可靠。 Docker Compose 主要由以下几个核心组件组成&#xf…

【SQL】1341. 电影评分(分组求解+合并union all;order by 多字段排序)

前述 知识点回顾:union all和union的区别 Union:对两个结果集进行并集操作,不包括重复行,同时进行默认规则的排序;Union All:对两个结果集进行并集操作,包括重复行,不进行排序&…

主机与windows虚拟机远程桌面实现方法

目录 一、虚拟机相关配置1. 配置虚拟机网络2. 打开虚拟机远程桌面功能3. 配置虚拟机用户与分组 二、主机相关配置 当无法通过共享文件夹实现主机与windows虚拟机文件共享时,可以通过主机与虚拟机远程桌面的方法实现文件的共享传输。本文主要介绍主机与虚拟机远程桌面…

Django 应用的路由访问

项目url 添加应用访问路径 from django.contrib import admin from django.urls import path, include from app1 import viewsurlpatterns [path(admin/, admin.site.urls),path(app1/, include(app1.urls)), # 在主项目添加应用的所有路由路径 ] 就可以访问app1应用下的ur…

【Python】第十二章_外星人入侵_武装飞船

目录 项目概述: 1 项目需求分析 2 安装Pygame 3 开始游戏项目 3.1 创建Pygame窗口以及响应用户输入 3.2 设置背景色 3.3 创建设置类 4 添加飞船图像 4.1 创建Ship 类 4.2 在屏幕上绘制飞船 5 重构: 模块game_functions 5.1 函数check_even…

osgEarth学习笔记2-第一个Osg QT程序

原文链接 上个帖子介绍了osgEarth开发环境的安装。本帖介绍我的第一个Osg QT程序。 下载 https://github.com/openscenegraph/osgQt 解压,建立build目录。 使用Cmake-GUI Configure 根据需要选择win32或者x64,这里我使用win32. 可以看到include和lib路…

注册个人小程序

访问地址 https://mp.weixin.qq.com/ 立即注册 选择小程序 注册 填写信息 登录邮箱 访问邮箱的链接激活账号 选择个人,填写信息 注册完成,即可登录进入填写信息

数通-OSPF域间路由防环机制

1类LSA:用来描述路由器自身直连接口链路状态信息的(也就是路由器连了什么); 2类LSA:用来描述伪节点的信息(2类LSA不仅描述了拓扑信息,同时也描述了叶子信息); 3类LSA&a…

后端工程师快速使用axios

文章目录 01.AJAX 概念和 axios 使用模板目标讲解代码解析案例前端后端结果截图 02.URL 查询参数模板目标讲解案例前端后端结果截图 03.常用请求方法和数据提交模板目标讲解案例前端后端结果截图 04.axios 错误处理模板目标讲解案例前端后端结果截图 01.AJAX 概念和 axios 使用…

Python 基于 OpenCV 视觉图像处理实战 之 OpenCV 简单实战案例 之一 哈哈镜效果

Python 基于 OpenCV 视觉图像处理实战 之 OpenCV 简单实战案例 之一 哈哈镜效果 目录 Python 基于 OpenCV 视觉图像处理实战 之 OpenCV 简单实战案例 之一 哈哈镜效果 一、简单介绍 二、简单哈哈镜实现的原理 1、图像拉伸放大 2、图像缩小 三、哈哈镜 拉伸放大 代码实现 …

uniapp可视范围高度 - 用户屏幕可操作的屏幕高度 - 适用于APP、H5@公众号、纯H5@Chrome

可视范围高度 let heightPx uni.getWindowInfo().windowHeight uni.getWindowInfo().windowTop 官方手册 uni.getWindowInfo() | uni-app官网uni-app,uniCloud,serverless,uni.getWindowInfo()https://uniapp.dcloud.net.cn/api/system/getWindowInfo.html 实测数据 uni.ge…

【目标检测】2. RCNN

接上篇 【目标检测】1. 目标检测概述_目标检测包括预测目标的位置吗?-CSDN博客 一、前言 CVPR201 4经典paper:《 Rich feature hierarchies for accurate object detection and semantic segmentation》,https://arxiv.org/abs/1311.2524, 这篇论文的算法思想被称…

信息检索(十三):On Complementarity Objectives for Hybrid Retrieval

On Complementarity Objectives for Hybrid Retrieval 摘要1. 引言2. 相关工作2.1 稀疏和密集检索2.2 互补性 3. 提出方法3.1 Ratio of Complementarity (RoC)3.2 词汇表示(S)3.3 语义表示(D)3.4 互补目标 4. 实验4.1 实验设置4.2…

服务器病毒木马通用排查处理应急响应流程

目录 一、勒索病毒发作的特征 二、勒索病毒的应急响应 三、勒索病毒预防与事后加固 一、勒索病毒发作的特征 如果发现大量统一后缀的文件;发现勒索信在Linux/home、/usr等目录,在Windows 桌面或者是被加密文件的文件夹下。如果存在以上特…

Flutter-仿腾讯视频Banner效果

闲聊 人一旦运气差,喝水都能噎着。我又被发”毕业证“了,😭,对!!!没有听错,发毕业证的当天上午刚讨论完需求,中午吃完饭,正常去公司前面的小公园溜达&#x…

供应链投毒预警 | 开源供应链投毒202402月报发布啦

概述 悬镜供应链安全情报中心通过持续监测全网主流开源软件仓库,结合程序动静态分析方式对潜在风险的开源组件包进行动态跟踪和捕获,发现大量的开源组件恶意包投毒攻击事件。在2024年2月份,悬镜供应链安全情报中心在NPM官方仓库(…

openEuler-22.03-LTS-SP2更改阿里云yum安装源

备份文件/etc/yum.repos.d/openEuler.repo,并将文件替换为以下内容: [OS] nameOS baseurlhttps://mirrors.aliyun.com/openeuler/openEuler-22.03-LTS-SP2/OS/$basearch/ enabled1 gpgcheck1 gpgkeyhttps://mirrors.aliyun.com/openeuler/openEuler-22.…

Tomcat(二)

一、搭建个人博客 二、状态页 默认的管理页面被禁用,启用方法如下 修改conf/conf/tomcat-users.xml 2.1 开启状态页(本地访问) 2.2 开启允许远程登录状态页 2.3 host manager

前端vue实现甘特图

1 什么是甘特图 甘特图(Gantt chart)又称为横道图、条状图(Bar chart)。以提出者亨利L甘特先生的名字命名,是项目管理、生产排程、节点管理中非常常见的一个功能。 甘特图内在思想简单,即以图示的方式通过活动列表和时间刻度形象地表示出任何特定项目的…