[db:标题]

摘要:Redis上篇--解析 本文大部分知识整理自网上,在正文结束后都会附上参考地址。如果想要深入或者详细学习可以通过文末链接跳转学习。 1. 基本介绍 Redis 是一个开源的、高性能的 内存键值数据库,Redis 的键值对中的 key 就是字
Redis上篇--解析 本文大部分知识整理自网上,在正文结束后都会附上参考地址。如果想要深入或者详细学习可以通过文末链接跳转学习。 1. 基本介绍 Redis 是一个开源的、高性能的 内存键值数据库,Redis 的键值对中的 key 就是字符串对象,而 value 就是指Redis的数据类型,可以是String,也可以是List、Hash、Set、 Zset 的数据类型。Redis通常被用作数据库、缓存、消息中间件和实时数据处理引擎。它以速度极快、支持丰富的数据结构而闻名,是现代应用架构中非常流行的组件。 它的核心特点我们需要了解一下: 内存存储 (In-Memory): 数据主要存储在内存 (RAM) 中,这是 Redis 速度惊人的根本原因(读写操作通常在微秒级别)。 它也提供可选的持久化机制,可以将数据异步或同步保存到磁盘,防止服务器重启后数据丢失。 丰富的数据结构 (Data Structures): 不仅仅是简单的 Key-Value 字符串!Redis 支持多种高级数据结构: Strings: 最基本类型,可以存储文本、数字、二进制数据(如图片片段)。 Lists: 有序的元素集合,可在头部或尾部插入/删除,适合实现队列、栈、时间线。 Sets: 无序的唯一元素集合,支持交集、并集、差集等操作,适合标签、共同好友。 Sorted Sets (ZSets): 带分数的有序唯一元素集合,元素按分数排序,完美适用于排行榜、优先级队列。 Hashes: 存储字段-值对的集合,非常适合表示对象(如用户信息:field: name, value: "Alice"; field: age, value: 30)。 Bitmaps / HyperLogLogs / Geospatial Indexes: 特殊用途的数据结构,用于位操作、基数统计(去重计数)、地理位置计算等。 高性能与低延迟: 内存访问 + 单线程架构 (核心命令执行是单线程,避免了锁竞争) + 高效的网络 I/O 模型 (epoll/kqueue) 使其拥有极高的吞吐量和极低的延迟。 持久化 (Persistence): RDB (Redis Database File): 在指定时间间隔生成整个数据集的内存快照。恢复快,文件紧凑。适合备份和灾难恢复。 AOF (Append-Only File): 记录所有修改数据库状态的命令。更安全(最多丢失一秒数据),文件可读性强,但文件通常更大,恢复可能比 RDB 慢。可以同时开启或选择其一。 原子操作与事务: 所有单条命令的执行都是原子的。 支持简单的事务 (MULTI/EXEC),可以将一组命令打包执行(但不支持回滚 - 命令语法错误会导致整个事务不执行,运行时错误不影响其他命令执行)。 Lua 脚本: 可以执行复杂的、需要多个命令且保证原子性的操作。 其实还有像发布订阅、集群架构本节就不赘述了。 典型应用场景 缓存 (Caching): 最常见的用途。将频繁访问的热点数据(如数据库查询结果、页面片段、会话信息)存储在 Redis 中,显著减轻后端数据库压力,提升应用响应速度。 会话存储 (Session Store): 存储用户会话信息,易于在多服务器或微服务架构中实现会话共享。 排行榜/计数器 (Leaderboards / Counters): 利用 Sorted Sets 可以非常高效地实现实时排行榜。利用 INCR 等命令实现高并发下的计数器(如点赞数、浏览量)。 实时系统 (Real-time Systems): 消息队列 (Message Queue): 利用 Lists 或 Streams (一种更强大的持久化消息队列数据结构) 实现简单的消息队列。 实时分析: 处理实时事件流(如用户活动跟踪、监控数据)。 地理空间应用 (Geospatial): 存储地理位置坐标,执行附近位置查询、距离计算等。 速率限制 (Rate Limiting): 限制用户 API 调用频率或操作次数。 分布式锁 (Distributed Lock): 利用 Redis 的原子操作实现简单的跨进程/跨机器的互斥锁。 // 对应的数据类型作用场景: String可以用来做缓存、计数器、限流、分布式锁、分布式Session等。 Hash可以用来存储复杂对象。List可以用来做消息队列、排行榜、计数器、最近访问记录等。 Set可以用来做标签系统、好友关系、共同好友、排名系统、订阅关系等。 Zset可以用来做排行榜、最近访问记录、计数器、好友关系等。 Geo可以用来做位置服务、物流配送、电商推荐、游戏地图等。
阅读全文