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 图片攻击概念 图片攻击是指故意对数字图像进行修改,以使机器学习模型产生错误的输出或者产生预期之外的结果。这种攻击是通过将微小的、通常对人类难以察觉的扰动应用于输入…

c语言十大核心用法

当然&#xff0c;以下是十个关于 C 语言用法的代码示例&#xff1a; 指针的基本用法&#xff1a; #include <stdio.h>int main() {int num 10;int *ptr;ptr &num;printf("The value of num is: %d\n", *ptr);return 0; }结构体的使用&#xff1a; #in…

【高频SQL基础题】585.2016年的投资

题目自寻&#xff1a; 解题思路&#xff1a; 去年投保额和至少1人一样就行&#xff0c; 而且经纬度不能和其他任何一人一样。 求这样投保人的2016年的投保金额之和。 它是分3个条件来的。我们每一个每一个去查就行了。 昨天&#xff0c;看一个视频&#xff0c;她说&#xf…

KBPC5010-ASEMI逆变器整流桥KBPC5010

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

大数据最佳实践

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

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

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

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

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

电话网和IP网

介绍 电话网&#xff08;Public Switched Telephone Network&#xff0c;PSTN&#xff09;和IP网&#xff08;Internet Protocol Network&#xff09;是两种不同的通信网络架构和技术体系。 电话网&#xff08;PSTN&#xff09;: PSTN 是一种传统的电话通信网络&#xff0c;基…

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

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

Vscode setting.json设置

setting.json设置 {// 換行"editor.wordWrap": "on",// 是否允许自定义的snippet片段提示"editor.snippetSuggestions": "top",// vscode默认启用了根据文件类型自动设置tabsize的选项 不检查缩进&#xff0c;保存后统一按设置项來设…

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

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

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

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

【TypeScript系列】5分钟了解TypeScript

5分钟了解TypeScript 让我们使用TypeScript来创建一个简单的Web应用。 安装TypeScript 有两种主要的方式来获取TypeScript工具&#xff1a; 通过npm&#xff08;Node.js包管理器&#xff09;安装Visual Studio的TypeScript插件 Visual Studio 2017和Visual Studio 2015 Up…

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

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

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

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

Leetcode题库: 1. 两数之和 Hash表思路解析。

题目&#xff1a; 给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中找出 和为目标值 target 的那 两个 整数&#xff0c;并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是&#xff0c;数组中同一个元素在答案里不能重复出现。 你…

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

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

Amadine mac版:矢量设计的艺术工坊,创作随心所欲!

Amadine矢量设计软件是一款功能强大且易于使用的创意工具&#xff0c;专为矢量图形设计而生。无论您是专业的设计师、插画师&#xff0c;还是寻找矢量图形设计解决方案的爱好者&#xff0c;Amadine都能满足您的需求。 Amadine Mac版软件获取 首先&#xff0c;Amadine以其直观…