文章目录
了解 Redis
Redis 是一种键值型的 Nosql 的数据库
其中的简键值型,是指 Redis 中存储的数据都是以 key、value 对的形式进行存储。而 value 的形式是多种多样的,可以是字符串、数值甚至是 json。
redis 的作者,叫 Salvatore Sanfilippo,来自意大利的西西里岛,目前供职于 Pivotal 公司。他使用的网名是 antirez。 目前,Vmware 在资助着 redis 项目的开发和维护。
认识 NoSQL
NoSQL 可以翻译成 Not Only SQL (不仅仅是SQL),或者是 No SQL(非SQL)的数据库,是相对于传统关系型数据库而言的,有着很大的差异的一种特殊的数据库,英因此也称为非关系型数据库。
1. 结构化和非机构化
在传统的关系型数据库当中是结构化数据的,每一种表都有着严格的约束信息:字段名、字段数据类型、字段约束等等信息,插入的数据是必须遵守这些约定的。
而 NoSQL 型的数据库结构是没有严格的约束,往往形式松散,自由。可以是:键值型、文档型、图格型。
2. 关系和非关联
传统的数据库的表与表之间往往是存在关系的,例如外键。
而非关系型数据库是不存在关联关系的,要维护关系要么靠代码中的业务逻辑,要么靠数据之间的耦合。
3. 查询方式
传统的关系数据库会基于 SQL 查询,语法有着统一的标准。
而不同的非关系型数据库查询语法差异较大,五花八门,各式各样的。
4. 事务
传统的关系型数据库是能满足书屋 ACID 的原则。
而非关系型数据库往往是不支持事务的,或者不能够保证 ACID 的特性,只能实现基本的一致性。
除了这些以外,两者在存储方式、扩展性、查询性能上也都有着显著的差异。
SQL | NoSQL | |
---|---|---|
数据结构 | 结构化(Structured) | 非结构化 |
数据关联 | 关联的(Relational) | 无关联的 |
查询方式 | SQL 查询 | 非 SQL |
事务特性 | ACID | BASE |
存储方式 | 磁盘 | 内存 |
扩展性 | 垂直 | 水平 |
使用场景 | 1. 数据结构固定 2.相关业务对数据的安全性、一致性要求较高 | 1.数据结构不固定 2.对一致性、安全性要求不高 3.对性能的要求 |
存储方式:
关系型数据库是基于磁盘进行存储的,会有大量的磁盘 IO 对性能有着一定的影响。
非关系型数据库,他们的操作更多的是依赖于内存来进行操作的,内存的读写速度是非常快的,性能自然更优一点的。
扩展性:
关系型数据库集群模式一般是主从、主从数据一致,起到一个数据备份的作用,称为垂直扩展。
非关系型数据库考科一将数据拆分、存储在不同的机器上面。达到可以保存海量数据的作用。解决内存大小有限的问题。就将这种模式称为水平扩展。
关系型数据库因为表与表之间的关系,如果做出水平扩展会给数据查询带来很多的麻烦。
认识 Redis
Redis 是诞生于 2009 年的,全称为 Remote Dictionary Server 远程词典服务器,是一个基于内存的键值型的 NoSQL 数据库。
特征:
-
它是键值(key-value)型的,value 是支持多种不同的数据结构的,功能丰富。
-
单线程的,每个命令都是基本原子性的。
-
延迟低,速度快(它是基于内存,IO多路复用的,良好的编码)
-
支持数据的持久化
-
支持主从集群,分片集群
-
支持多语言的客户单。
安装 Redis
Redis 官方是并没有提供 Windows 版本的安装包。因此在这我吗就基于Linux 系统来安装 Redis。
我采用的是以虚拟机来实现的,也可以使用云服务器的。
首先在 Redis 官网上下载 Redis 的安装包。
然后我们将安装包放到 linux 系统中的某一个合适的路径下。
先解压缩:
tar -xzf redis-6.2.6.tar.gz