初识Redis
约 847 字大约 3 分钟
2025-06-25
Redis 是一种键值型 NoSQL 数据库,其中包含两个关键概念:键值型和 NoSQL。
- 键值型:Redis 中存储的数据以 key-value 对的形式存在。Value 的形式多样,可以是字符串、数值,甚至是 JSON。
- NoSQL:相对于传统关系型数据库而言的一种特殊数据库。
1.1 认识 NoSQL
NoSQL 可以理解为 "Not Only SQL"(不仅仅是 SQL)或 "No SQL"(非 SQL)数据库。它是一种与传统关系型数据库有很大差异的数据库,也被称为非关系型数据库。
1.1.1 结构化与非结构化
传统关系型数据库存储的是结构化数据,每张表都有严格的约束,包括字段名、数据类型和约束等。插入的数据必须遵守这些约束。
而 NoSQL 数据库对数据格式没有严格约束,形式松散且自由。它可以是键值型、文档型或图格式。
1.1.2 关联和非关联
传统关系型数据库的表之间通常存在关联,例如外键。
而非关系型数据库不存在关联关系。要维护关系,要么依赖代码中的业务逻辑,要么依赖数据之间的耦合。
1.1.3 查询方式
传统关系型数据库使用 SQL 语句进行查询,语法有统一的标准。
而非关系型数据库的查询语法差异很大,各种各样。
1.1.4 事务
传统关系型数据库满足事务的 ACID 原则(原子性、一致性、隔离性、持久性)。
而非关系型数据库通常不支持事务,或者不能严格保证 ACID 特性,只能实现基本的一致性。
1.1.5 总结
除了上述四点,关系型数据库和非关系型数据库在存储方式、扩展性和查询性能上也有显著差异,如下表所示:
特性 | 关系型数据库 | 非关系型数据库 |
---|---|---|
存储方式 | 基于磁盘,涉及大量磁盘 IO,对性能有影响 | 更多依赖内存操作,读写速度快,性能较好 |
扩展性 | 垂直扩展(主从模式,数据一致,用于数据备份) | 水平扩展(数据拆分存储在不同机器上,可存储海量数据,解决内存限制问题) |
关联关系 | 表之间存在关联关系,水平扩展会给数据查询带来麻烦 | 无关联关系,通过业务逻辑或数据耦合维护关系 |
因此,在选择数据库时,需要根据具体的应用场景和需求,综合考虑各种因素。
1.2 认识 Redis
Redis 诞生于 2009 年,全称是 Remote Dictionary Server(远程字典服务器),是一个基于内存的键值型 NoSQL 数据库。
Redis 的主要特征包括:
- 键值(key-value)型:Value 支持多种不同的数据结构,功能丰富。
- 单线程:每个命令具备原子性。
- 低延迟,速度快:基于内存、IO 多路复用和良好的编码。
- 支持数据持久化:可以将数据保存到磁盘上,防止数据丢失。
- 支持主从集群、分片集群:可以提高 Redis 的可用性和扩展性。
- 支持多语言客户端:可以使用多种编程语言来操作 Redis。