Redis7学习——Redis的初认识
目录
一、前言
二、认识Redis
1、Redis是什么?
2、Redis的主流功能
3、Redis的优势
三、总结
一、前言
在之前的文章中,我们已经学习过了如 MySQL 一样的传统关系型数据库,这里的“关系”指的是数据之间的逻辑联系,通过表格的形式展现出来。“关系”听起来很抽象,其实它就是指表和表之间可以有关联。在数据库里,这种关系通常是通过“外键”来实现的,比如让员工表里的“部门”指向“部门表”的“部门ID”。
但是传统的的关系型数据库在某些情境下存在着很多问题如:
- 磁盘的I/O瓶颈:传统数据库的数据存储在磁盘上,即使有索引,高并发读写仍然较慢(毫秒级)。
- 复杂查询:很多场景(如缓存、会话存储)只需要简单的 get / set 操作,但关系型数据库仍然要走 SQL 解析、执行计划优化等流程,效率较低。
- 数据结构单一:传统数据库以“表”为核心,而某些业务(如排行榜、社交网络)需要更灵活的数据结构(如有序集合、哈希)。
- 高并发下的扩展性问题:关系型数据库的横向扩展(分库分表)较复杂。
拿最简单的案例来说,微信朋友圈点赞,对于MySQL来说,点赞之后还需要在数据库中进行update操作,MySQL是在磁盘上的数据库,这样多次I/O 会导致性能的急剧下降,但是Redis就不存在这样的问题,它是在内存上的,所以在面对高并发高性能要求时,redis在内存中肯定是比在磁盘上更快的。
基于以上的传统型关系数据库的不足之处
2009 年,意大利程序员 Salvatore Sanfilippo(网名 antirez)为了解决自己公司的实时日志分析问题,开发了 Redis。
二、认识Redis
1、Redis是什么?
Redis(Remote Dictionary Service,远程字典服务)是一个开源的 内存数据库(In-Memory Data Store),同时支持持久化到磁盘。它以 键值对(Key-Value) 形式存储数据,并支持多种数据结构(如字符串、哈希、列表、集合等)。数据是存在内存中的,同时Redis支持事务、持久化、LUA脚本、发布/订阅、缓存淘汰、流技术等多种功能特性提供了主从模式、Redis Sentinel和Redis Cluster集群架构方案。它的核心特点是:
- 高性能:数据存储在内存中,读写速度极快(微秒级)。
- 丰富的数据结构:支持字符串、哈希、列表、集合、有序集合等。
- 持久化:可配置将数据保存到磁盘,避免重启后数据丢失。
- 高可用与分布式:支持主从复制、哨兵模式、集群模式。
- 多功能:可用作缓存、消息队列、数据库等。
2、Redis的主流功能
- Redis分布式缓存,是挡在MySQL数据库前面的一条缓冲带,如图所示
- 当客户端发起请求之后优先查询Redis缓存,并非直接访问MySQL数据库,这是为了利用 Redis 的内存存储特性,以微秒级速度响应高频请求,减少对 MySQL 的直接访问。
- 如果Redis中没有所需数据(即缓存未命中),此时请求会“穿透缓存”,访问MySQL数据库,获取原始数据。
- 从 MySQL 获取数据后,主动将数据写入 Redis 缓存(称为“缓存回填”或“预热”)。这是为了确保下一次相同请求能直接命中缓存,避免重复穿透到 MySQL,提升后续请求的响应速度。
- 如果如果 Redis 中存在所需数据,Redis 直接将数据返回给客户端,无需访问 MySQL。
其本质就是在高并发的情况下,对MySQL数据库来说,减少直接的压力,避免崩溃,对用户来说,直接提升响应的速度,保障用户的体验。
- 内存存储和持久化(RDB+AOF),redis支持异步将内存中的数据写到硬盘上,同时不影响继续服务。Redis 作为 内存数据库,数据默认存储在内存中,这是其高性能的核心原因。但内存数据易失(如进程崩溃、机器断电),因此 持久化机制(将内存数据异步写入磁盘)是 Redis 可靠性的关键。Redis 提供两种持久化方案:RDB(快照) 和 AOF(日志),可单独使用或组合使用。
- 高可用的架构搭配,从单机到集群,Redis 的高可用架构设计需解决 数据不丢失(持久化)、服务不中断(故障转移)、容量可扩展(分布式存储)三大核心问题。
- 缓存穿透、击穿、雪崩
- 分布式锁
下面一张图就可以基本概括Redis的所有功能了
3、Redis的优势
- 性能极高 -Redis能读的速度是110000次/秒,写的速度是81000次/秒
- Redis数据类型丰富,不仅仅支持简单的key-value类型的数据,同时还提供list,zset,set,hash等数据结构的存储
- Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用
- Redis支持数据的备份,即master-slave模式的数据备份
- 生成dump.rpb文件(可以在配置文件中改) 默认生成在redis.conf同级目录
上面这张架构图以 “分层视角” 清晰展示了 Redis 的核心能力(底层到上层)及应用场景。
- 底层:持久化机制(RDB/AOF)保证 Redis 不是“一次性内存玩具”,而是可靠的数据存储。
- 中间层是工具库:数据结构(5种基础+Stream等扩展)+ 核心特性(事务/Lua/淘汰策略)提供“乐高积木”,支持开发者组合出复杂功能。
- 上层是“业务落地”:通过工具库的组合,解决分布式系统中的共性问题(缓存、会话、锁、计数),最终支撑业务增长。
三、总结
本篇文章主要是在学习Redis数据库之前先对 Redis数据库作一个大致的认识,知道它有哪些功能和特性,接下来的文章才是深入分析和实践每一个功能和特性。
感谢阅读!