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 能表达复杂业务逻辑!


八、结语

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

相关推荐
-XWB-2 小时前
【Oracle】Oracle诊断系列(4/6):表空间与对象管理——存储优化与空间规划
数据库·oracle
山峰哥2 小时前
SQL优化全解析:从索引策略到查询性能飞跃
大数据·数据库·sql·编辑器·深度优先
爱吃大芒果2 小时前
Flutter for OpenHarmony 实战: mango_shop 购物车模块的状态同步与本地缓存处理
flutter·缓存·dart
葫三生2 小时前
存在之思:三生原理与现象学对话可能?
数据库·人工智能·神经网络·算法·区块链
不凉帅2 小时前
NO.6 数据库设计基础知识
数据库·分布式数据库·软考·数据库设计
TOOLS指南2 小时前
谷歌AI Gemin怎么使用?Gemini国内使用指南!
数据库·微软
cuber膜拜2 小时前
Weaviate 简介与基本使用
数据库·python·docker·向量数据库·weaviate
MAHATMA玛哈特科技2 小时前
以曲求直:校平技术中的反直觉哲学
前端·数据库·制造·校平机·矫平机·液压矫平机
惊讶的猫2 小时前
mysql子查询
数据库