Redis简单介绍

一、前言:为什么 Redis 几乎成了"标配"?

你是否经常听到这些说法?

  • "我们用 Redis 做缓存,接口快了 10 倍!"
  • "登录态用 Redis 存 Token,支持分布式部署"
  • "秒杀系统靠 Redis 搞定高并发"

Redis 到底是什么?为什么它如此重要?

本文将用最简洁的方式,带你快速掌握 Redis 的本质、特点和典型用途,零基础也能看懂!


二、Redis 是什么?

Redis(Remote Dictionary Server) 是一个开源的、基于内存的键值对(Key-Value)数据库。

你可以把它想象成一个超高速的"字典":

  • 给一个名字(key),就能立刻拿到对应的值(value)
  • 所有数据都存在内存中,读写速度极快

📊 性能对比(参考值):

存储方式 读取速度
机械硬盘(HDD) ~100 IOPS
固态硬盘(SSD) ~10,000 IOPS
MySQL(磁盘) ~1,000 QPS
Redis(内存) 100,000+ QPS

💡 实测:Redis 单机轻松支持 10万+ 每秒读写操作


三、Redis 的核心特点

✅ 1. 基于内存,速度极快

  • 数据存在 RAM 中,避免磁盘 I/O 瓶颈
  • 适合高频读写场景(如计数器、会话)

✅ 2. 丰富的数据类型

不只是字符串!Redis 支持:

  • String:字符串(如缓存 HTML 片段)
  • Hash:哈希表(如存储用户信息)
  • List:列表(如消息队列、最新评论)
  • Set:集合(如标签去重)
  • Sorted Set:有序集合(如排行榜)
bash 复制代码
# 示例:用 Sorted Set 实现排行榜
ZADD leaderboard 95 "张三"
ZADD leaderboard 88 "李四"
ZREVRANGE leaderboard 0 9  # 获取前10名

✅ 3. 持久化支持

虽然数据在内存,但 Redis 可以定期保存到磁盘,防止宕机丢失:

  • RDB:快照(定时全量备份)
  • AOF:日志(记录每条写命令)

📌 默认开启 RDB,兼顾性能与可靠性

✅ 4. 高可用 & 集群

  • 主从复制(Master-Slave)
  • 哨兵模式(Sentinel)自动故障转移
  • Redis Cluster 分布式集群(自动分片)

四、Redis 典型应用场景

场景 使用方式 优势
缓存 缓存数据库查询结果 减轻 DB 压力,提升响应速度
会话存储 存储用户登录 Token 支持分布式系统共享登录态
排行榜 Sorted Set 实现 实时排序,毫秒级响应
限流 利用 INCR + 过期时间 防止接口被刷(如短信验证码)
消息队列 List 的 LPUSH / BRPOP 轻量级异步任务处理
分布式锁 SET key value NX EX 保证多节点操作互斥

五、快速上手:5 行命令体验 Redis

  1. 安装 Redis (以 macOS 为例):

    bash 复制代码
    brew install redis
  2. 启动服务 :

    bash 复制代码
    redis-server
  3. 连接客户端 :

    bash 复制代码
    redis-cli
  4. 基本操作 :

    bash 复制代码
    > SET name "Alice"
    OK
    > GET name
    "Alice"
    > EXPIRE name 60  # 60秒后自动删除
    (integer) 1
  5. 退出 :

    bash 复制代码
    > exit

💡 你刚刚完成了一次"缓存写入 + 自动过期"!


六、Redis vs 其他数据库

对比项 Redis MySQL Memcached
类型 NoSQL(键值) SQL(关系型) NoSQL(键值)
存储 内存 + 可持久化 磁盘 仅内存
数据类型 丰富(5种+) 表结构 仅字符串
持久化 ✅ 支持 ✅ 原生 ❌ 不支持
集群 ✅ 官方支持 需中间件 第三方实现

📌 结论 :Redis ≠ 替代 MySQL,而是互补 !

通常:MySQL 存原始数据,Redis 存热点数据


七、常见误区澄清

❌ 误区 1:"Redis 是缓存,不能当数据库用"

正解 :Redis 可作为主数据库(如实时排行榜、会话存储),只要接受其内存限制和持久化策略。

❌ 误区 2:"Redis 数据会丢,不安全"

正解 :合理配置 RDB/AOF 后,数据安全性足够用于多数业务。金融级场景可结合 MySQL 双写。

❌ 误区 3:"Redis 只能存字符串"

正解:Hash、List、Set 等结构让 Redis 能表达复杂业务逻辑!


八、结语

感谢您的阅读!如果你有任何疑问或想要分享的经验,请在评论区留言交流!

相关推荐
AIgorithmGEEK17 小时前
MySQL 索引全解(下):建、查、删实战与知识速查表
数据库·mysql·b+树·索引
行百里er19 小时前
Redis 完结篇——Redis 热点问题在 Spring Boot 项目中实战
redis·后端
唠点键盘之外的20 小时前
26 向量数据库实战:从 0 搭一条能用的检索链路(pgvector + Spring AI)
数据库·人工智能·spring
云和恩墨20 小时前
数据库监控简史:监控不止于告警——从图表大爆发到健康管理闭环
数据库
ly768920 小时前
MongoDB 事务开销实测:快照隔离下的写冲突、重试与分片事务边界
数据库·mongodb·事务·分片集群·快照隔离·写冲突
豆角焖肉20 小时前
Spring AOP 自定义注解实现系统操作日志
数据库·自定义注解·springaop·操作日志·aop 切面
金伟API102421 小时前
不会写复杂SQL怎么办?
数据库·sql
执笔为剑1 天前
2.1.2-1、V8R3迁移到V8R6-Oracle兼容特性
数据库
geovindu1 天前
sql:Search-Optimized SQL Queries using mysql 9.0
android·数据库·sql·mysql·数据库开发·数据库架构
for_ever_love__1 天前
MySQL SELECT 与 WHERE 优化实战:可搜索条件、联合索引与执行计划
数据库·mysql·oracle·select·where·条件优化·查询优化技巧