Redis——快速入门第一课:了解redis

文章目录

  • [一、Redis 是什么?一句话先听懂](#一、Redis 是什么?一句话先听懂)
    • [和 MySQL 的直观对比](#和 MySQL 的直观对比)
  • [二、Redis 的核心结构:客户端 / 服务端(非常重要)](#二、Redis 的核心结构:客户端 / 服务端(非常重要))
    • [1️⃣ Redis 服务端(Server)是干嘛的?](#1️⃣ Redis 服务端(Server)是干嘛的?)
    • [2️⃣ Redis 客户端(Client)是干嘛的?](#2️⃣ Redis 客户端(Client)是干嘛的?)
    • [3️⃣ 一句话记忆法(很重要)](#3️⃣ 一句话记忆法(很重要))
  • [三、Redis 在服务器上是怎么跑起来的?](#三、Redis 在服务器上是怎么跑起来的?)
    • [Redis 的最基本运行形态](#Redis 的最基本运行形态)
    • [启动 Redis 服务端(Linux)](#启动 Redis 服务端(Linux))
  • [四、Redis 客户端怎么用?(你一定会用)](#四、Redis 客户端怎么用?(你一定会用))
    • [1️⃣ 最基础:redis-cli](#1️⃣ 最基础:redis-cli)
      • [连接 Redis](#连接 Redis)
      • [测试 Redis 是否正常](#测试 Redis 是否正常)
    • [2️⃣ Redis 最基础的"存 / 取"](#2️⃣ Redis 最基础的“存 / 取”)
    • [3️⃣ 设置"带过期时间的数据"(Redis 最常用)](#3️⃣ 设置“带过期时间的数据”(Redis 最常用))
  • [五、Redis 在真实项目里怎么用?(重点)](#五、Redis 在真实项目里怎么用?(重点))
    • [场景 1:缓存(最常见)](#场景 1:缓存(最常见))
    • [场景 2:登录状态 / token](#场景 2:登录状态 / token)
    • [场景 3:验证码](#场景 3:验证码)
    • [场景 4:分布式锁(了解即可)](#场景 4:分布式锁(了解即可))
  • [六、Redis 常用数据类型(不多,但很强)](#六、Redis 常用数据类型(不多,但很强))
    • [Hash 示例(像对象)](#Hash 示例(像对象))
  • [七、Redis 数据会不会丢?(新手最关心)](#七、Redis 数据会不会丢?(新手最关心))
    • [Redis 默认在内存,但:](#Redis 默认在内存,但:)
  • [八、Redis 和 Docker / 本地的关系(你刚好问过)](#八、Redis 和 Docker / 本地的关系(你刚好问过))
  • [九、你现在"最少要记住的 10 件事"](#九、你现在“最少要记住的 10 件事”)
  • 十、一句话终极总结

一、Redis 是什么?一句话先听懂

Redis 是一个"速度非常快的内存数据库"

再翻译成人话一点:

  • 它把数据放在内存里

  • 读写速度非常快

  • 常用来做:

    • 缓存
    • 登录状态
    • 验证码
    • 分布式锁
    • 消息队列(轻量)

和 MySQL 的直观对比

对比项 MySQL Redis
数据存储 磁盘 内存(可落盘)
速度 毫秒级 微秒级
适合存 重要业务数据 临时 / 高频数据
是否替代 MySQL ❌(是互补)

👉 Redis 不是用来替代 MySQL 的,而是"帮 MySQL 扛压力的"


二、Redis 的核心结构:客户端 / 服务端(非常重要)

Redis 和 MySQL 一样,是典型的客户端 / 服务端架构


1️⃣ Redis 服务端(Server)是干嘛的?

👉 真正存数据、干活的那个

  • 进程名:redis-server

  • 做的事情:

    • 在内存里存数据
    • 监听端口(默认 6379)
    • 等客户端来连接
    • 处理命令

📌 没有 Redis 服务端 = 没有 Redis


2️⃣ Redis 客户端(Client)是干嘛的?

👉 用来"连 Redis、发命令"的工具

常见客户端:

  • redis-cli(命令行,最常用)
  • Java / Python / Go 程序里的 Redis 客户端
  • GUI 工具(RedisInsight 等)

📌 客户端本身不存数据


3️⃣ 一句话记忆法(很重要)

Redis-server 是"仓库"
Redis-client 是"取货的人"


三、Redis 在服务器上是怎么跑起来的?

Redis 的最基本运行形态

text 复制代码
你的程序 / redis-cli
        ↓
   TCP 6379
        ↓
   redis-server
        ↓
      内存

启动 Redis 服务端(Linux)

方式 1:系统服务(最常见)

bash 复制代码
systemctl start redis

或:

bash 复制代码
systemctl start redis-server

查看是否启动成功

bash 复制代码
ps -ef | grep redis
ss -lntp | grep 6379

四、Redis 客户端怎么用?(你一定会用)

1️⃣ 最基础:redis-cli

连接 Redis

bash 复制代码
redis-cli

看到:

text 复制代码
127.0.0.1:6379>

说明:

  • 客户端连上了服务端
  • Redis 可以正常使用

测试 Redis 是否正常

bash 复制代码
ping

返回:

text 复制代码
PONG

👉 这是 Redis 世界里的"hello world"


2️⃣ Redis 最基础的"存 / 取"

存一个值

bash 复制代码
set name zhangsan

取出来

bash 复制代码
get name

输出:

text 复制代码
"zhangsan"

删除

bash 复制代码
del name

3️⃣ 设置"带过期时间的数据"(Redis 最常用)

bash 复制代码
set code 123456 ex 60

意思是:

  • 存验证码 123456
  • 60 秒后自动消失

查看剩余时间:

bash 复制代码
ttl code

五、Redis 在真实项目里怎么用?(重点)

下面是 99% 项目都会用到的场景


场景 1:缓存(最常见)

问题

  • 每次请求都查 MySQL
  • 数据库压力大、慢

Redis 方案

text 复制代码
用户请求
  ↓
先查 Redis
  ↓
有数据 → 直接返回
  ↓
没数据 → 查 MySQL → 写入 Redis

示例(逻辑)

bash 复制代码
# 第一次
get user:1   # 没有
# 查数据库
set user:1 "{id:1,name:张三}" ex 300

场景 2:登录状态 / token

bash 复制代码
set login:user:1001 token_xxx ex 3600
  • 登录成功 → 写 Redis
  • 请求来了 → 查 Redis
  • 过期 → 自动下线

场景 3:验证码

bash 复制代码
set sms:13800000000 9527 ex 60

场景 4:分布式锁(了解即可)

bash 复制代码
set lock:order:123 yes nx ex 10

六、Redis 常用数据类型(不多,但很强)

你现在只需要知道这几个:

类型 说明 示例
String 字符串 set / get
Hash 对象 hset / hget
List 列表 lpush / rpop
Set 去重集合 sadd
ZSet 排序集合 zadd

Hash 示例(像对象)

bash 复制代码
hset user:1 name zhangsan age 18
hget user:1 name

七、Redis 数据会不会丢?(新手最关心)

Redis 默认在内存,但:

  • 可以定期 落盘(RDB)
  • 每次写都记日志(AOF)

📌 实际使用中:

Redis ≠ 绝对不丢

适合存"丢了也能恢复"的数据


八、Redis 和 Docker / 本地的关系(你刚好问过)

  • 本地 Redis 和 Docker Redis:

    • 两套完全独立的 Redis
  • Redis 客户端:

    • 只关心 IP + 端口
    • 不关心 Redis 在不在 Docker 里

九、你现在"最少要记住的 10 件事"

  1. Redis 是内存数据库
  2. Redis ≠ MySQL
  3. redis-server 才是服务端
  4. redis-cli 是客户端
  5. Redis 默认端口 6379
  6. 能 ping 通才算正常
  7. set / get 是最基本操作
  8. Redis 常用来做缓存
  9. Redis 数据可以自动过期
  10. 客户端 ≠ 服务端

十、一句话终极总结

Redis 是一个"高性能内存工具"

  • redis-server:干活的
  • redis-cli / 程序:用它的

你只需要记住:
能连上、能 ping、能 set/get,Redis 就算会用了

相关推荐
今晚务必早点睡2 小时前
Redis——快速入门第三课:真实项目里的缓存完整流程
数据库·redis·缓存
-Xie-2 小时前
Redis(十五)——内存过期/淘汰策略
数据库·redis·缓存
lhrimperial2 小时前
Redis核心技术深度解析
数据库·redis
小股虫2 小时前
Tair Java实操手册:从零开始的缓存中间件入门指南
java·缓存·中间件
gugugu.2 小时前
Redis事务全面解析
数据库·redis·bootstrap
Hello.Reader2 小时前
KeyDB 一台“40 英尺卡车”式的 Redis 兼容高性能缓存
数据库·redis·缓存
最贪吃的虎2 小时前
网络是怎么传输的:从底层协议到浏览器访问网站的全过程剖析
java·开发语言·网络·http·缓存
爱好读书2 小时前
AI生成ER图|SQL生成ER图
数据库·人工智能·sql·毕业设计·课程设计
小尧嵌入式2 小时前
Linux网络介绍网络编程和数据库
linux·运维·服务器·网络·数据库·qt·php