Redis 从 0 到 1 系统教程(项目实战级)

你好!我会像老师上课一样,带你系统学习 Redis,从基础概念到项目实战,最终让你达到在项目中自由使用的水平。

这门课我会分成 8 个完整的课时,每个课时都有明确的学习目标、核心知识点、代码示例和实战练习。


第 1 课:Redis 入门与环境搭建

学习目标

完成本课后,你将掌握:

  • Redis 的基本概念
  • Redis 的核心特点
  • Redis 的应用场景
  • Windows/Linux 环境安装
  • Redis 基础命令操作

1.1 Redis 是什么?

Redis(Remote Dictionary Server)是一个开源的、基于内存的高性能键值(Key-Value)数据库,也被称为:

数据结构服务器(Data Structure Server)


Redis 核心特点

特性 说明
内存存储 数据主要存在内存中,读写速度极快
多数据结构 支持 String、Hash、List、Set、ZSet 等
持久化 可以将内存数据保存到磁盘
高可用 支持主从复制、哨兵模式、集群模式
原子性 所有操作都是原子操作

内存存储

数据主要存储在内存中。

性能非常高:

指标 性能
读操作 10万+ 次/秒
写操作 8万+ 次/秒

多数据结构

Redis 不仅支持字符串,还支持丰富的数据结构:

数据结构 说明
String 字符串
Hash 哈希
List 列表
Set 集合
ZSet 有序集合

持久化

Redis 虽然是内存数据库,但支持持久化机制:

  • RDB
  • AOF

可以将数据保存到磁盘,避免服务器重启导致数据丢失。


高可用

Redis 支持:

  • 主从复制(Master-Slave)
  • Sentinel(哨兵)
  • Cluster(集群)

满足企业级高可用需求。


原子性

Redis 所有命令都是原子操作。

这也是实现以下功能的基础:

  • 分布式锁
  • 分布式计数器
  • 秒杀系统
  • 限流系统

1.2 为什么项目中必须用 Redis?

Redis 解决的核心问题

1. 数据库性能瓶颈

将热点数据缓存到 Redis。

流程如下:

用户请求
    ↓
Redis
    ↓
MySQL

优先访问 Redis。

只有 Redis 没有数据时才访问数据库。

这样可以:

  • 减少数据库压力
  • 提高响应速度
  • 提升系统吞吐量

2. 分布式系统问题

Redis 是分布式系统的重要组件。

常见应用:

  • 分布式锁
  • 分布式计数器
  • 分布式会话
  • 分布式限流

3. 实时业务场景

Redis 天生适合实时业务。

典型场景:

  • 排行榜
  • 消息队列
  • 实时聊天
  • 地理位置查询
  • 热搜榜

性能对比

数据库 响应时间
MySQL 100~200ms
Redis 1ms 左右

Redis 性能通常比 MySQL 快数十倍甚至上百倍。


1.3 Windows / Linux 环境搭建

Windows 安装(开发环境)

第一步:下载 Redis

下载地址:

https://github.com/microsoftarchive/redis/releases

推荐版本:

Redis-x64-3.2.100

第二步:解压

例如:

D:\Redis

第三步:启动服务端

双击:

redis-server.exe

第四步:启动客户端

双击:

redis-cli.exe

执行:

ping

返回:

PONG

表示安装成功。


Linux 安装(生产环境)

下载 Redis

wget https://download.redis.io/releases/redis-7.0.15.tar.gz

解压并编译

tar -zxvf redis-7.0.15.tar.gz

cd redis-7.0.15

make && make install

修改配置文件

vim redis.conf

修改以下配置:

daemonize yes

bind 0.0.0.0

requirepass yourpassword

配置说明:

配置项 作用
daemonize yes 后台运行
bind 0.0.0.0 允许远程访问
requirepass 设置密码

启动 Redis

redis-server redis.conf

客户端连接

redis-cli -h localhost -p 6379 -a yourpassword

1.4 Redis 基本操作

设置键值对

set name "zhangsan"

获取值

get name

返回:

"zhangsan"

查看所有键

⚠️ 生产环境慎用,会阻塞 Redis。

keys *

判断键是否存在

exists name

返回:

1

表示存在。

返回:

0

表示不存在。


删除键

del name

设置过期时间

验证码场景:

setex code 60 "123456"

表示:

60 秒后自动删除

查看剩余生存时间

ttl code

返回值说明:

返回值 含义
正数 剩余秒数
-1 永不过期
-2 已过期

移除过期时间

persist code

查看数据类型

type name

返回:

string

本课总结

本课主要学习了:

  • Redis 基本概念
  • Redis 核心特点
  • Redis 应用场景
  • Windows 安装
  • Linux 安装
  • Redis 常用基础命令

课后练习

练习 1

安装 Redis 并成功启动服务。


练习 2

练习以下命令:

set
get
exists
del
ttl
persist
type

练习 3

设置一个 30 秒过期键。

观察:

ttl key

数值如何变化。


练习 4

创建不同类型的数据。

使用:

type key

查看对应类型。


下一课预告

第 2 课:Redis 核心数据结构详解

学习内容:

  • String
  • Hash
  • List
  • Set
  • ZSet

以及它们在真实项目中的应用场景。