当前位置: 首页 > news >正文

【Redis】P1 Redis - NoSQL

Redis - NoSQL

  • SQL 与 NoSQL
    • 差别一:结构化 与 非结构化
    • 差别二:关联性 与 非关联性
    • 差别三:规范化查询语句 与 非规范化
    • 差别四:事务 与 无事务
    • 差别五:磁盘存储 与 内存存储
  • Redis
  • Redis 的安装

当前数据库存储主要分为 关系型数据库(SQL) 以及 非关系型数据库(NoSQL)
MySQL 作为典型的 关系型数据库;而 Redis 作为典型的 非关系型数据库


SQL 与 NoSQL

差别一:结构化 与 非结构化

结构化:

在建立 SQL数据库时,我们需要对数据的类型与数据的大小做定义,我们需要设置主键、非空等约束。最终给我们呈现的是一张具有规则的表格。

在这里插入图片描述

非结构化:

在 Redis、MongoDB、Neo4j 等非结构化数据库中,数据不以表等形式存储,而是以:
Redis:键值对;
MongoDB:json存储,文档类型;
Neo4j:图类型;

在这里插入图片描述


差别二:关联性 与 非关联性

关联性:

SQL中表与表之间存在关联,通过外键的方式建立;

非关联性:

NoSQL中不存在关联性,而是通过 json嵌套的方式;


差别三:规范化查询语句 与 非规范化

规范化:

SQL中存在一套非常规范的查询语句:

# 查询语句示例
select id,name,age from tb_user where id=1;
# DQL实际执行顺序
FROM表名
WHERE条件
GROUP BY分组
HAVING分组后条件
SELECT字段
ORDER BY排序
LIMIT分页

非规范化:

NoSQL中:

# Redis
get user:1# MongoDB
db.users.find({_id:1})# elasticsearch
GET http://localhost:9200/users/1

差别四:事务 与 无事务

事务:

SQL中,通过事务控制命令对事务进行控制;控制的原因主要为了保证数据的完整性以及数据的一致性。即ACID特性:

原子性:(Atomicity)
事务是不可分割的最小操作单元,要么全部成功,要么全部失败;一致性:(Consistency)
事务完成时,必须是所有数据保持一致状态;隔离性:(Isolation)
多组事务存在并发,但是根据数据库系统提供的隔离机制,互不干扰;持久性:(Durability)
事务一旦提交或回滚,其对数据库中数据的更改是持久性的。
start transaction;		# 控制事务命令
# 被控制的事务
...
commit;					# 正确即提交
rollback;				# 错误即回滚

无事务:

NoSQL中,不存在事务管理的说法,故无法满足 ACID (原子性、一致性、隔离性、持久性);所以说,若对数据库安全性有需求,则应该首选关系型数据库。


差别五:磁盘存储 与 内存存储

磁盘存储:

SQL中,大多数采用磁盘存储,所以对比 NoSQL的内存存储,肯定性能不如其;但是满足ACID的要求;

内存存储:

NoSQL中,大多数数据存储在内存中,如此性能比较高,但是内存会因为突然关机而数据消失,所以比如 Redis,会定期从内存中存入磁盘,以此支持数据持久化。


Redis

诞生于2009年,全称 Remote Dictionary Server,是基于内存的键值型NoSQL数据库。

特征:

  1. 键值型;
  2. 单线程,串行执行,原子性,安全;
  3. 低延迟,速度快,基于内存;
  4. 支持数据持久化(定期从内存存入磁盘)
  5. 支持主从集群,分片集群;
  6. 支持多语言客户端。

Redis 的安装

未完待续 2023年3月10日晚间完成

http://www.lryc.cn/news/37382.html

相关文章:

  • Angular学习之ControlValueAccessor接口详解
  • 【GORM】高级查询方案
  • MFC 简单使用事件
  • 华为OD机试题 - 端口合并(JavaScript)| 机考必刷
  • ECharts数据可视化--常用图表类型
  • Flutter面试题解析-GridView详解与应用
  • 最全的论文写作技巧(建议收藏)
  • 面向对象设计模式:设计模式分类(创建型、行为型、结构型)
  • MySQL数据库迁移
  • Docker:关于 Dockerfile 编写优化的一些笔记整理
  • 个性化营销:您需要知道的信息
  • 栈和队列的相互实现
  • iTab新标签页重磅更新 |这些功能绝对有你想要的新体验!
  • 【改机教程】iOS系统去除小黑条,改拍照声、拨号音、键盘音,不用越狱,支持所有机型
  • Android10开机向导中复用设置中的Wifi界面
  • 川农机械专业小伙转行Java开发,年薪20w
  • 华为OD机试题 - 打印文件(JavaScript)| 机考必刷
  • 免费常用API大全,程序员必备
  • MySQL主从复制,读写分离
  • 什么是UEFI签名认证?UEFI签名有什么好处?
  • 案例14-课程推送页面逻辑整理--vue
  • 5大GPU厂商共建 | openKylin社区GPU SIG首次例会召开!
  • SpringBoot读取配置文件
  • 51驱动NRF24L01通信,NRF24L01与TTL转NRF24L01模块通信
  • C++友元
  • MySQL内置函数
  • mysql数据库之innodb存储引擎架构之内存架构
  • Vue:(三十五)路由vue-router
  • Dynabook笔记本电脑无法开机怎么重装新系统?
  • React Native基础知识点