-
bbianji8 用户
Redis 缓存数据库完全教程:从安装到用缓存扛住高并发
本文讲清 Redis 是什么、为什么快、怎么装、怎么用「缓存」减轻数据库压力,并给出五种核心结构用法、缓存三大经典问题与避坑、以及在 Node.js 中落地。看完你能给应用加上一层缓存,显著提升性能与并发能力。
一、原理背景
Redis 是一个基于内存的键值(Key-Value)数据库,数据主要存在内存里,因此读写极快(单机轻松十万级 QPS)。它常被用作缓存、会话存储、排行榜、计数器、消息队列、分布式锁等。
为什么需要 Redis(缓存场景)
假设一个商品详情页,每次请求都去查 MySQL,数据库压力随流量线性增长,慢查询会拖垮整站。引入 Redis 后:
- 先查 Redis:命中就直接返回(毫秒级)。
- 未命中再查 MySQL,把结果写回 Redis(设过期时间),下次直接命中。
这样 90%+ 的请求被 Redis 拦下,数据库压力骤降,响应更快。
Redis 为什么快
- 数据在内存:无需磁盘 I/O,访问纳秒-微秒级。
- 单线程模型:避免锁竞争与上下文切换,命令串行执行(6.0 后 IO 多线程但命令仍单线程)。
- 高效数据结构:字符串、哈希、列表、集合、有序集合等底层做了大量优化(如 ziplist、skiplist)。
- IO 多路复用:单线程也能同时处理大量连接(epoll/kqueue)。