Redis01——Redis简介

news2024/11/14 14:53:33

目录

NOSQL与SQL的差异

数据结构:结构化 VS 非结构化

数据关联:关系型 VS 非关系型

 数据查询:SQL查询 VS 非SQL查询

事务特性:满足事 VS 没有完全满足

Redis 简介

Redis 安装

Redis 数据结构简介

Redis 常用命令(基本)

通用命令:KEYS、DEL、EXISTS、EXPIRE、TTL

keys 查看符合模板的所有key

DEL 删除一个指定的key

EXISTS 判断key是否存在

Redis中value的常见类型

String 类型

key 的层级结构

Hash 类型

List 类型

Set 类型

SortedSet 类型


NOSQL与SQL的差异

关于图中的扩展性

  • 垂直:关系型数据库在一开始设计数据库时,就没有考虑到数据的分布式存储,通俗来说就是没有考虑到把数据拆分成不同的部分,然后保存到不同的地方。比如一开始把主机A当成数据库服务器,那么主机A的性能就直接决定了数据库服务器的性能,只能通过提高主机A的性能来提高数据库的性能(当然,数据库自身也可以通过一些优化手段来提升性能,但是我觉得这是两码事)。个人的理解:比如主机A的存储空间有1G,那么数据库也最多最多能存储1G的数据,如果想存储更多的数据,那么只能通过给主机A增加存储空间来实现(比如给主机A加内存条啥的),而不能选择说把多的数据存到别的地方,进行分布式存储
  • 水平:与垂直相对的,水平是已经考虑到了数据的拆分需求,就是可以把数据拆成多个部分,存储在不同的主机上,实现分布式存储,比如主机A存满了,就存到主机B上。非关系型数据库会通过哈希运算,来判断数据应该存到哪个地方,从而实现数据的拆分,所以对非关系型数据库很容易进行数据扩展

数据结构:结构化 VS 非结构化

数据关联:关系型 VS 非关系型

关系型数据库中数据表之间的联系可以节省数据存储空间

非关系型数据库的数据之间则没有直接的联系,可能会存储重复的数据,如一个商品信息被多个用户购买,那么这个商品信息就会被存储多次

 数据查询:SQL查询 VS 非SQL查询

事务特性:满足事 VS 没有完全满足

关系型数据可以全部满足事务的ACID四个 特性,但是非关系型数据库不能同时满足四个特性

Redis 简介

Redis 安装

Redis 是安装在Linux上的,在个人电脑一般都是在虚拟机里安装Linux,安装教程可以在网上找教程,也可以参考我的这个笔记:虚拟机和Linux安装教程

然后Redis的安装和基本使用参见视频:安装Redis和三种启动方式、Redis的命令行客户端、Redis的图形化界面

Redis 数据结构简介

Redis中的数据是以键值对的方式进行存储,即key-value,其中value有多种不同的类型,适用于不同的应用场景

这里提供一个Redis的中文版网站:Redis 

可以在这个网站上查看Redis的各种命令及使用教程

Redis 常用命令(基本)

通用命令:KEYS、DEL、EXISTS、EXPIRE、TTL

命令用小写也可以运行

如果要查看某个命令的简要说明,可以使用help命令,比如help keys,也可以在网上查看文档

keys 查看符合模板的所有key

一般在生产中不建议使用该命令,因为该指令是使用模糊查询实现的,当数据量很大时,查询效率就会很慢,并且由于Redis的命令都是由单线程执行的,所以在keys命令执行完成之前,就会一直阻塞其他命令的执行,因此一般不推荐使用

DEL 删除一个指定的key

EXISTS 判断key是否存在

剩下的不截图了,太费时间啦,如果通过help命令还是不明白命令的用法,就可以百度了,或者直接在上面推荐的中文网站上也能找到,后面的笔记也都简单截个图就行

Redis中value的常见类型

String 类型

为了节省空间,数值类型的字符串在编码的时候会把数字转为二进制的形式作为字节去存储,这样一个字节就可以表示一个非常大的数字。而普通的字符串就是把字符转成对应的字节码去存储,占有的内存更多一点

key 的层级结构

Redis中的数据结构都是以键值对的形式存储,即key-value,此时有以下问题

Hash 类型

List 类型

 

Set 类型

可以通过下面的案例进行练习 

SortedSet 类型

上图中的min max都是包含的,即闭区间[min, max],且排名的名次从0开始

可以通过下面的案例进行练习,这里就不把代码贴出来了

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

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

相关文章

论文被Turnitin查出AI率,会受影响吗?

无论是作业或是毕业论文的提交,原创性已成为了硬性标准。因此提交前都会使用Turnitin(www.checktoo.com)进行论文检测,用来确保其原创性。可当Turnitin报告能显示出论文的AI率时,越来越多学者开始担忧“这会对我的论文…

c++单例实践

C单例实践 在日常开发中,虽然太多的单例调用会让代码的耦合度变高,但是例如日志类这种,单例模式就变得非常有。所以这篇文章为大家介绍static 关键字相关知识以及如何实现自己的C单例类。 static关键字 首先让我们请出今天的主角: static。…

Brave浏览器:开启隐私保护新时代

今天电脑天空要向大家介绍一款专注隐私安全的浏览器——BraveBrowser,它不仅仅是一个浏览工具,更是你在线隐私的守护者! BraveBrowser是一款免费且开源的网络浏览器,它的核心优势在于其强大的广告和跟踪器阻止功能。想象一下&…

数据要素流通交易的场景概述

00前言 数据要素作为国家重点发展方向,如何发挥其数据要素价值是目前研究的重点。核心的观点是流动的数据才能产生价值,如果数据并没有开放、共享那么价值一定是有限的。目前,数据流通类型主要包括数据开放、数据共享和数据交易三种。 数据…

【Python学习手册(第四版)】学习笔记16-函数基础

个人总结难免疏漏,请多包涵。更多内容请查看原文。本文以及学习笔记系列仅用于个人学习、研究交流。 本文主要介绍Python中函数的基本概念,作用域以及参数传递,函数语法以及def和return语句的操作,函数调用表达式的行为&#xff…

AWS DMS遇到 Error : no handler found for uri

问题描述: 当我按照文档[1]配置AWS DMS 目标端为OpenSearch, 并进行数据迁移的时候,我遇到了如下报错: 00015696: 2024-07-31T03:26:57 [TARGET_LOAD ]E: Elasticsearch:FAILED SourceTable:test TargetIndex:test Operation:INSERT_E…

Mysql80主从复制搭建;遇到问题 Slave_IO_Running: Connecting和Slave_SQL_Running以及解决过程

总结主要步骤 1.配置一个提供复制的账号; 创建用户 CREATE USER replication% IDENTIFIED BY your_password; GRANT REPLICATION SLAVE ON *.* TO replication%; FLUSH PRIVILEGES;2.修改配置 选择模式 主库配置; windows的得话是my.ini文件 默认这个目…

Vue项目学习(1)

1、进入cmd命令行——> vue ui ——>等等操作 2、 3、src目录下 4、vue项目的启动 (1) (2) 5、如何更改前端vue项目的端口号?——>去vue.config.js里配置应一个对象

云端医疗解决方案:互联网医院系统的云计算架构与实现

随着云计算技术的成熟和普及,医疗行业开始探索云端解决方案,以应对数据存储、计算能力和系统扩展性等方面的挑战。互联网医院系统作为医疗信息化的重要组成部分,通过云计算架构实现了高效、灵活和可扩展的医疗服务。本文将深入探讨互联网医院…

【vulnhub】DC-2靶机

信息收集 靶机扫描 nmap 192.168.93.1/24 端口扫描 网页访问 发现访问不到,根据显示考虑IP未遵循重定向到域名 在本机的C:\Windows\System32\drivers\etc 修改hosts⽂件,添加192.168.93.136 dc-2 再次进行访问,可以访问到 点击flag&#x…

牛客JS题(十七)总成绩排名

注释很详细&#xff0c;直接上代码 涉及知识点&#xff1a; 引用传值深拷贝合理封装 题干&#xff1a; 我的答案 <!DOCTYPE html> <html><head><meta charset"utf-8" /></head><body><script type"text/javascript&quo…

ResNet原理

一、ResNet基础架构 残差块 批量归一化层 二、ResNet网络参数详解 三、ResNet总结 残差网络的出现使人们摆脱了深度的束缚&#xff0c;大幅改善了深度神经网络中的模型退化问题&#xff0c;使网络层数从数十层跃升至几百上千层&#xff0c;大幅提高了模型精度&#xff0c;通用…

Linux 下 perf 的使用

目录 一、概述1、perf 作用2、常用的工具集 二、perf 工具的使用1、perf list2、perf stat3、perf top4、perf record/report4.1 perf record4.2 perf report 5、perf annotate 一、概述 1、perf 作用 perf 是一个性能分析工具&#xff08;基于 Linux 内核提供的性能事件 per…

jacodb导入带签名的jar包失败的问题

今天在执行某个项目分析时&#xff0c;100多个jar包只有BC库的三个jar包导入失败。错误如下&#xff1a; [DefaultDispatcher-worker-1 coroutine#1] INFO org.jacodb.impl.storage.PersistenceService - Starting app version [1.4] [DefaultDispatcher-worker-16 coroutine#…

世界上最小,装机量最多的数据库居然是...

最近在根客户沟通数据库选型的时候&#xff0c;聊到了手机应用内置的数据库SQLite。别小看它哈&#xff0c;它可是世界上最小&#xff0c;装机量最多的数据库&#xff0c;只是因为它着实太低调了&#xff0c;低调的连官网都是那么朴素。麻雀虽小&#xff0c;五脏俱全&#xff0…

还在人工代码review?reviewdog和PMD了解一下

前言 代码reivew作为团队协同开发时确保代码质量的手段之一&#xff0c;在软件开发团队中非常常见。特别是对于刚入门不久的团队成员&#xff0c;通过代码review也可一定程度上避免一些低级错误&#xff0c;提升整个部分的代码健壮性。 一般来讲&#xff0c;通过代码review可…

LearnOpenGL-入门章节学习笔记

LearnOpenGL-入门章节学习笔记 简介一、核心模式与立即渲染模式二、扩展三、状态机四、对象 创建窗口一、Main函数——实例化窗口二、Callback Function 回调函数三、processInput 函数 创建三角形一、顶点输入二、顶点着色器三、编译着色器四、片段着色器五、着色器程序六、链…

二叉树——1.翻转二叉树

力扣题目链接 翻转一棵二叉树。 输入&#xff1a; 输出&#xff1a; 可以发现&#xff0c;如何翻转一个二叉树&#xff1f;将每个父节点下的子节点互换就行了&#xff0c;4下面2分支树和7分支树互换&#xff0c;2下面1和3互换&#xff0c;7下面6和9互换。在前面可以自学一下关…

55 函数嵌套定义、可调用对象与修饰器

1 函数嵌套定义 Python 允许函数的嵌套定义&#xff0c;在函数内部可以再定义另外一个函数。 def func(iterable, operator, value): # 自定义函数if operator not in -*/:return operator errordef nested(item): # 嵌套定义函数return eval(repr(item) operator repr(v…

陷入复杂度深渊的ModularRAG..

最近又有一篇ModularRAG的论文&#xff0c;虽然没有太让人汗毛竖起的惊艳&#xff0c;但我想文中的几张配图冷不丁的也着实让部分密集恐惧症患者又一次炸毛了一下吧;)...ps&#xff0c;图画的还是十分规整和可读的&#xff0c;逻辑也很是清晰&#xff0c;为作者的用心点赞&…