[Redis] 认识NoSQL和Redis

初次学习,如有错误还请指正

目录

认识NoSQL

结构化与非结构化

关联和非关联

查询方式

事务

总结

认识Redis

特征

redis数据结构介绍


Redis是一种键值型的NoSQL数据库,这里面有两个关键字:key-value

其中键值型,是指Redis中存储的数据是以key.value对的形式存储,而value的形式多种多样,可以是字符串、数值甚至是json。

NoSQL则是相对于传统关系型数据库而言有很大差异的一种数据库。对于存储的数据,没有类似于MySQL那么严格的约束,如唯一性、是否可以为null等。我们把这种松散结构的数据库成为NoSql数据库。NoSQL也称为非关系型数据库。

认识NoSQL

结构化与非结构化

传统关系型数据库是结构化数据,每一张表都有严格的约束信息:字段名、字段数据类型、字段约束等等信息,插入的数据必须遵守这些约束;而NoSq则对数据库格式没有严格约束,往往形式松散,自由。

NoSQL和SQL数据库的比较:

[Redis] 认识NoSQL和Redis_第1张图片

关联和非关联

传统数据库的表与表之间往往存在关联,例如外键;

而非关系型数据库不存在关联关系,要维护关系要么靠代码中的业务逻辑,要么靠数据之间的耦合。

查询方式

传统关系型数据库会基于Sql语句做查询,语法有统一标准,sql语句在不同数据库都能执行;

而不同的非关系数据库查询语法差异极大,五花八门各种各样。

[Redis] 认识NoSQL和Redis_第2张图片

事务

传统关系型数据库能满足事务ACID的原则:原子性、一致性、隔离性、持久性

而非关系型数据库往往不支持事务,或不能严格保证ACID的特性,只能实现基本的一致性。

总结

[Redis] 认识NoSQL和Redis_第3张图片

什么情况下选择关系型数据库,什么情况下选择非关系型数据库?

如果数据结构相对固定的,将来也不会发生变化,数据业务安全性要求比较高,建议使用关系型数据库。如订单数据,订单数据对安全性要求较高,此时首选关系型数据库。当然,为了提升查询性能,我们可以将冗余部分的订单数据存储到NoSQL数据库当中,以提升查询性能。所以两者是可以结合使用的。

NoSQL数据库一般对于数据结构不固定、对一致性和安全性要求不高的场景下可以使用。

认识Redis

Redis是一个基于内存的键值型NoSQL数据库。

特征

键值(key-value)型,value支持多种不同数据结构,可以是字符串、数值、甚至json,功能丰富。

  • 单线程,每个命令具备原子性。多线程一般针对于网络的请求处理。

  • 低延迟,速度快(基于内存、IO多路复用【提高了整个服务的吞吐能力】、良好的编码)。

  • 支持数据持久化(安全性考虑,定期会从内存持久化到磁盘)

  • 支持主从集群(从节点备份主节点的数据。可以做到读写分离,从而提高效率)、分片集群

  • 支持多语言客户端

redis数据结构介绍

[Redis] 认识NoSQL和Redis_第4张图片


THE END

你可能感兴趣的:(Redis,redis,nosql,数据库)