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 #技术教程



发表评论