Redis 技术教程:从入门到实战

Redis 技术教程:从入门到实战

一、Redis 简介

Redis 是一个开源的内存数据库,以 Key-Value 形式存储数据。它的特点包括:

  • 内存存储:数据在内存中,读写速度极快
  • 高性能:单线程模型,无上下文切换开销
  • 多数据类型:支持字符串、列表、集合等 5+ 种数据结构
  • 持久化:支持 RDB 和 AOF 两种持久化方式

二、核心数据类型

1. String(字符串)

SET name "Tom"
GET name
SET token "abc123" EX 3600

2. Hash(哈希)

HSET user:1001 name "Tom"
HSET user:1001 age 25
HGETALL user:1001

3. List(列表)

LPUSH queue "item1"
RPUSH queue "item2"
LRANGE queue 0 -1
LPOP queue

4. Set(集合)

SADD tags "java" "redis"
SCARD tags
SISMEMBER tags "java"

5. ZSet(有序集合)

ZADD rank 100 "Alice"
ZADD rank 95 "Bob"
ZRANK rank "Bob"

三、基本原理

单线程模型

Redis 采用单线程处理命令,避免了多线程的锁竞争和上下文切换开销。所有操作都在一个线程中顺序执行,保证原子性。

持久化机制

  • RDB:快照模式,定时保存数据快照
  • AOF:追加日志,记录每次写操作

内存管理

Redis 使用内存池管理,支持多种淘汰策略:

  • noeviction:不淘汰
  • allkeys-lru:随机淘汰最近最少使用
  • volatile-lru:仅淘汰设置了过期时间的键

四、常用命令

SET key value
GET key
DEL key
EXPIRE key 3600
MSET k1 v1 k2 v2

五、使用场景

场景 类型 说明
缓存 String 存储热点数据
会话管理 String Session 存储
消息队列 List 消息排队
排行榜 ZSet 分数排序
计数器 String 原子递增

六、最佳实践

1. 键命名规范

# 推荐
user:1001:info
order:20240422:001

# 不推荐
user_info
myorder

2. 大 Key 处理

redis-cli --bigkeys
HSCAN key 0 COUNT 100

3. 内存监控

INFO memory
INFO stats

总结

Redis 是高性能缓存的首选。掌握数据类型、原理和最佳实践,才能让你的应用发挥 Redis 的最大价值。

#Redis #缓存 #数据库 #NoSQL #技术教程

标签

发表评论