redis知识点

一、关系型数据库和非关系型数据库

关系型数据库(RDBMS):指采用了关系模型来组织数据的数据库,,关系模型指的就是二维表格模型,而一个关系型数据库就是由二维表及其之间的联系所组成的一个数据组织。

①特点:

  1. 结构化数据:数据存储在二维表中,通常遵循ACID属性(原子性、一致性、隔离性、持久性)。
  2. 固定的数据类型:每个字段都有固定的数据类型。
  3. 事务支持:支持复杂的事务处理,确保数据的完整性和一致性。
  4. SQL查询:使用结构化查询语言(SQL)进行数据查询和管理。
  5. 数据完整性:通过主键、外键等约束保证数据的完整性和关联性。
  6. 数据维护:通常需要更多的时间和资源来维护数据完整性、安全性和性能。

②:关系型数据库的优点

  • 容易理解:二维表结构是非常贴近逻辑世界的一个概念,关系模型相对网状、层次等其他模型来说更容易理解
  • 使用方便:通用的 SQL 语言使得操作关系型数据库非常方便
  • 易于维护:丰富的完整性 (实体完整性、参照完整性和用户定义的完整性) 大大减低了数据冗余和数据不一致的概率

③:关系型数据库的缺点

  • 存储在磁盘当中IO能力受限:网站的用户并发性非常高,往往达到每秒上万次读写请求,对于传统关系型数据库来说,硬盘I/O是一个很大的瓶颈。
  • 在表当中查询效率比较低:在一张包含海量数据的表中查询,效率是非常低的。
  • 升级维护比较困难:当需要对数据库系统进行升级和扩展时,往往需要停机维护和数据迁移。
  • 性能欠佳:在关系型数据库中,导致性能欠佳的最主要原因是多表的关联查询,以及复杂的数据分析类型的复杂 SQL 报表查询。为了保证数据库的 ACID 特性,必须尽量按照其要求的范式进行设计,关系型数据库中的表都是存储一个格式化的数据结构。

典型应用:银行系统、电子商务网站、ERP系统、CRM系统等需要高数据一致性和事务支持的应用。

非关系型数据库(NoSQL):非关系型数据库以键值对存储,且结构不固定,每一个元组可以有不一样的字段,每个元组可以根据需要增加一些自己的键值对,不局限于固定的结构,可以减少一些时间和空间的开销。

①特点:

  1. 灵活的数据模型:数据模型灵活,可以是键值对、文档、列族或图形等。
  2. 高性能:通常具有更高的读写性能,适用于大数据和高并发场景。
  3. 查询速度快:使用特定的查询语言或API进行查询,通常比关系型数据库更快。
  4. 水平扩展:通过分布式架构实现水平扩展,易于处理大规模数据。
  5. 不一定支持事务:部分NoSQL数据库不支持事务或仅支持有限的事务功能。

②:非关系型数据库的优点

  • Nosql的存储格式是key,value形式、文档形式、图片形式等等,所以可以存储基础类型以及对象或者是集合等各种格式,而数据库则只支持基础类型。
  • 关系型数据库有类似join这样的多表查询机制的限制导致扩展很艰难。Nosql基于键值对,数据之间没有耦合性,所以非常容易水平扩展。
  • 非关系型数据库一般强调的是数据最终一致性,不像关系型数据库一样强调数据的强一致性,从非关系型数据库中读到的有可能还是处于一个中间态的数据,Nosql不提供对事务的处理。

③:非关系型数据库的缺点

  • 只适合存储一些较为简单的数据,对于需要进行较复杂查询的数据,关系型数据库显得更为合适。
  • 不适合持久存储海量数据,因为一般是内存型数据库

典型应用:社交媒体、日志分析、实时数据分析、缓存系统等需要高性能和灵活数据模型的应用。

总结

选择关系型数据库还是非关系型数据库,取决于具体的应用需求。如果需要高数据一致性、复杂的事务处理、固定的数据结构,并且数据量不是特别大,关系型数据库可能是一个更好的选择。而如果需要处理大规模数据、高性能读写、灵活的数据模型,并且不太需要事务支持,那么非关系型数据库可能更合适。

二、redis基本认识和安装

redis 数据存储在内存,Redis属于非关系型数据库,是一个完全开源免费的一个高性能的key-value数据库。它是基于内存的数据库,读写数据的效率极高。

安装好redis后,win+X,打开管理员的PowerShell,启动redis   D:\redis\redis-server.exe redis.windows.conf,出现如下界面代表启动成功

 如果没有出现图形,可能是reids的端口号被占用,可以在cmd中输入netstat -ano命令,查看端口号6379的PID,然后再任务管理器中结束6379对应的PID进行,再次尝试启动redis

三、redis的基本使用 

①Redis支持的数据类型(key值区分大小写)

基本数据类型

  • String(字符串):Redis最基本的数据类型,一个键对应一个值,一个键值最大存储512MB
  • Hash(哈希):hash是一个键值对的集合,是一个String类型的field和value的映射表,适合用于存储对象
  • List(列表):是redis的简单的字符串列表,按插入顺序排序
  • Set(集合):是String字符串类型的无序集合,也不可重复
  • ZSet(sorted  set  有序集合):是String类型的有序集合,也不可重复。有序集合中的每个元素都需要指定一个分数,根据分数对元素进行升序排序。

②String(字符串)的基本操作

String: key value json数据

set: set key value 设置value值

get: get key 根据key值获取value值

mset: mset k1 v1 k2 v2 批量设置value

mget: get k1 k2 批量根据key值获取value值

 

exists * 判断key值是否存在,不存在输出0

keys * 查找出所有的key值

keys *me 匹配所有以me结尾的key值

 clear 清屏

flushall 清空所有的key值

EXPIRE key 10(seconds) 设置key的过期时间,为10s

TTL key 查看过期时间 -2 key值过期后key值就会被清除,再次get key会得到nil

setEX key seconds value 设置key的value值时设置过期时间

 

③Hash(哈希)的基本操作 

hset key field value[field1 value1 field2 value2] 创建哈希(Hsah)名为key,属性为field,属性值为value

hget key field 获得哈希(Hsah)名为key,属性为field的属性值

hgetall key 获得哈希(Hsah)名为key的所有属性和属性值

hdel key field 删除哈希(Hsah)名为key的field属性

hexists key field 判断哈希(Hsah)名key是否右field属性 0不存在,1存在

hkeys key 获得哈希(Hsah)名key的所有属性

hlen key 获得哈希(Hsah)名key的属性个数

 ④List(列表)的基本操作 

lpush key value 在列表key中左边插入value

lpush key value 在列表key中右边插入value

lrange key start stop 输出列表key中从start到stop的值

 lpop key 从列表左边出元素

rpop key 从列表右边出元素

llen arr 获取列表的长度

 

ltrim key start stop 对列表key切分从start到stop

 

 ⑤Set(集合)的基本操作

sadd key member[member1,member2] 给set集合key添加元素member(set集合无序,且不重复)

scard key 获取集合key中元素的个数

smenbers key 获取集合key中的所有元素

sismember key member 判断集合key中是否含有member元素

srem key member 删除集合key中的member元素

del key 删除集合key

sdiff key1 key2 返回集合key1比集合key2多的元素

sinter key[key..] 返回集合之间的交集

sunion key[key...] 返回集合之间的并集

 ⑥ZSet(sorted  set  有序集合)的基本操作

zadd key score member[score member...] 向sortedset有序集合key中添加排序值score和元素值member(按照排序值给集合从小到大排序,不重复)

zrange key start stop [withscores] 获取集合key从start到stop的元素,withscores表示一起返回排序值score

zscore key member 获取集合key的指定元素的分数

zrank key member 获取集合key指定元素的排名,从小到大,从0开始

zrevrenk key member 获取集合key指定元素的排名,从大到小,从0开始

zrem key member 删除集合key的指定元素

 

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

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

相关文章

无纸化电子sop系统帮助企业降低成本,提高目视化管理

无纸化电子SOP系统是一种基于数字化技术的生产管理系统,旨在优化员工的生产规范,提高产品质量。随着制造业的发展和数字化转型,越来越多的企业开始采用无纸化电子SOP系统来替代传统的纸质操作规程,以提升生产效率、降低成本、确保…

MySQL 学习笔记(基础篇 Day2)

「写在前面」 本文为黑马程序员 MySQL 教程的学习笔记。本着自己学习、分享他人的态度,分享学习笔记,希望能对大家有所帮助。推荐先按顺序阅读往期内容: 1. MySQL 学习笔记(基础篇 Day1) 目录 3 函数 3.1 字符串函数 3…

【人工智能课程】计算机科学博士作业三

【人工智能课程】计算机科学博士作业三 来源:李宏毅2022课程第10课的作业 1 图片攻击概念 图片攻击是指故意对数字图像进行修改,以使机器学习模型产生错误的输出或者产生预期之外的结果。这种攻击是通过将微小的、通常对人类难以察觉的扰动应用于输入…

KBPC5010-ASEMI逆变器整流桥KBPC5010

编辑:ll KBPC5010-ASEMI逆变器整流桥KBPC5010 型号:KBPC5010 品牌:ASEMI 封装:KBPC-4 最大重复峰值反向电压:1000V 最大正向平均整流电流(Vdss):50A 功率(Pd):大功率 芯片个数&#xff…

大数据最佳实践

本文主要收录一些大数据不错的实践文章 1、数禾云上数据湖最佳实践 https://blog.51cto.com/u_15089766/2601706 该文章介绍了数禾云的数据胡实践,包含presto以及数据湖等组件的一些部署架构,文章听不错的,里面提到了为了避免presto与yarn计…

【EI会议征稿通知】第六届能源系统与电气电力国际学术会议(ICESEP 2024)

第六届能源系统与电气电力国际学术会议(ICESEP 2024) 2024 6th International Conference on Energy Systems and Electrical Power 随着ICESEP (2019-2023)前5届的成功举办,我们很荣幸地宣布,由华中科技大学主办的第六届能源系统与电气电力…

【npm】node包管理工具npm的介绍和基础使用

简言 npm 是 Node.js 的 包管理器(Package Manager),它是专门用于管理 Node.js 项目中第三方库的工具。 本文介绍下npm和其使用方法。 npm介绍 npm 是世界上最大的软件注册中心。各大洲的开源开发者都使用 npm 共享和借用软件包&#xff…

一个数据库表格缺少自动增加的字段导致添加一条数据失败

一个数据库表格缺少自动增加的字段导致添加一条数据失败。最近要整理出一个cms网站源程序,因此新建了一个目录,将需要的文件复制到该目录。复制好以后,试用的时候发现添加留言失败。经过数小时的查找原因,最后找到原因&#xff0c…

互联网智慧工地源码,“互联网+建筑大数据”SaaS微服务架构,支持PC端、手机端、数据大屏端

智慧工地源码,支持多端展示(PC端、手机端、平板端)SaaS微服务架构,项目监管端,工地管理端源码 智能时代的风暴已经融入了我们生活的每个方面,智能手机、iPad等移动终端智能设备已经成为我们生活的必需品。智…

能耗数据采集网关在实际生产中的应用及其带来的能效提升-天拓四方

能耗数据采集网关是一种集成多种传感器和数据通信技术的智能化设备,它能够实现对生产现场各类能耗数据的实时采集、存储和传输。通过网关设备,企业可以构建一个全面、高效的能源管理系统,对生产过程中的能源消耗进行实时监控和精准控制&#…

flex布局(后端工程师快上手写前端)

本文更加适合后端同学需要上手写前端本人实习前后端都干,只能说工作越来越难找了 不知道大家前端掌握的怎么样,我是来重新复习了 css前置知识(熟悉可以不看): 1.如果父标签不设置宽高,那么父标签的宽高会…

logback最全日志输出,你需要的这里都有,全是干货

有工作经历的都知道,日志打印非常重要,往往是定位生产问题的唯一方式。 如果不了解日志的配置,先查看我另一篇文章基于springboot的logback日志管理,文章里面日志输出,分级、分文件目录,还有各种配置以及说…

四面体单元悬臂梁的Matlab有限元编程 | 实体单元 | Matlab源码 | 理论文本

专栏导读 作者简介:工学博士,高级工程师,专注于工业软件算法研究本文已收录于专栏:《有限元编程从入门到精通》本专栏旨在提供 1.以案例的形式讲解各类有限元问题的程序实现,并提供所有案例完整源码;2.单元…

全面剖析一下ThreadLocal

什么是ThreadLocal? ThreadLocal英文翻译过来就是:线程本地量,它其实是一种线程的隔离机制,保障了多线程环境下对于共享变量访问的安全性。 看到上面的定义之后,那么问题就来了,ThreadLocal是如何解决共享…

Java 中创建线程多种方式介绍

在 Java 中,创建线程有多种方式,以下是最常见的四种: 1. **通过继承 Thread 类** 2. **通过实现 Runnable 接口** 3. **通过实现 Callable 接口** 4. **通过使用 Executor 框架** 每种方式都有其特点和适用场…

Go编译报错 link: running gcc failed: exit status 1(已解决)

背景 在对一个开源的Go程序二次开发 重新编译时 , 报错截图如下 报错文字如下:关键信息 link: running gcc failed: exit status 1 $ go build -o orchestrator-didi -i go/cmd/orchestrator/main.go go build: -i flag is deprecated # command-li…

客服提效工具:一键回复,效率翻倍

在快节奏的工作环境中,每一秒都是宝贵的。对于客服人员来说,每天面对的是海量的咨询和回复,如何在保证服务质量的同时,提高工作效率?最近,我被同事安利了一个神奇的工具——客服宝聊天助手。这是一款专为客…

基于单片机的天然气泄漏报警系统设计论文

目 录 摘 要 I Abstract II 1 引 言 1 2天然气泄露检测报警系统的方案设计 4 2.1 方案选择 4 2.2 天然气泄露报警系统的整体设计方案 5 2.2.1天然气泄漏报警器工作原理 5 2.2.2天然气泄漏报警器的结构 5 3天然气泄露报警的硬件部分设计 7 3.1 STC89C52单片机 7 3.2 传感器的选…

IJCAI23 - Continual Learning Tutorial

前言 如果你对这篇文章感兴趣,可以点击「【访客必读 - 指引页】一文囊括主页内所有高质量博客」,查看完整博客分类与对应链接。 本篇 Tutorial 主要介绍了 CL 中的一些基本概念以及一些过往的方法。 Problem Definition Continual Learning 和 Increm…

【MOMO_Tips】批量将word转换为PDF格式

批量将word转换为PDF格式 1.打开文件–>选项–>自定义功能区–>开发工具–>确定 2.点开开发工具,选择第一个visual basic 3.进入页面后找到插入–>模块,就可以看到这样的画面之后将下列vba代码复制粘贴到模块中 Sub ConvertWordsToPd…