返回目录

Redis教程 - 高性能内存数据库

Redis(Remote Dictionary Server)是一款开源的基于内存的键值对数据库,以极高的读写性能著称。它不仅是缓存神器,还支持多种数据结构,可应用于排行榜、消息队列、分布式锁等场景。本教程将助你全面掌握Redis。

一、Redis简介

Redis由Salvatore Sanfilippo于2009年开发,采用C语言编写,所有数据存储在内存中,单线程读写速度可达10万次/秒以上。它支持持久化,可将内存数据保存到磁盘,兼顾性能与数据安全。

特性描述
纯内存存储数据在内存中,读写极快
多数据结构支持String/List/Hash/Set/ZSet等
持久化支持RDB快照和AOF日志两种方式
单线程模型避免锁竞争,命令原子性执行

二、你将学到什么

  • 基础命令:String、List、Hash、Set、ZSet操作命令
  • 数据结构:各数据结构的底层实现与应用场景
  • 高级特性:发布订阅、事务、Lua脚本、管道
  • 持久化机制:RDB与AOF原理、配置与选择
  • 高可用架构:主从复制、哨兵模式、Cluster集群
  • 应用场景:缓存设计、分布式锁、限流、排行榜

三、代码示例

使用Redis命令实现常见场景:

-- String: 缓存用户信息(设置过期时间)
SET user:1001 "{"name":"小明","age":25}" EX 3600
GET user:1001
-- 设置不存在的key才成功(分布式锁基础)
SET lock:order:1001 "thread_1" NX EX 30

-- Hash: 存储商品信息
HSET product:2001 name "iPhone" price 7999 stock 100
HGET product:2001 price
HINCRBY product:2001 stock -1

-- ZSet: 实现排行榜
ZADD ranking:score 100 "玩家A" 200 "玩家B" 150 "玩家C"
-- 获取前3名(从高到低)
ZREVRANGE ranking:score 0 2 WITHSCORES
-- 获取玩家B的排名
ZREVRANK ranking:score "玩家B"

-- List: 消息队列
LPUSH task:queue "task1" "task2" "task3"
RPOP task:queue  -- 取出task3(先进先出)

-- 设置过期时间(秒)
EXPIRE session:token 1800
TTL session:token  -- 查看剩余时间

四、适合人群

  • 后端开发者,Redis是缓存必备技能
  • 架构师,需要设计高并发缓存方案
  • 运维工程师,需要管理Redis集群
  • 想要提升系统性能的开发者

五、学习建议

Redis命令简单易学,但难点在于如何合理使用。建议先掌握5种基础数据结构的命令,再重点学习缓存设计模式(缓存穿透、缓存雪崩、缓存击穿的解决方案)。深入理解持久化和高可用架构,这是生产环境的关键知识。

🎯 开始你的Redis学习之旅吧!

课程信息:
共 4 个章节,预计学习时长 250 分钟,已有 1700 人学习

暂无内容