Redis 是高性能的内存数据库,广泛用于缓存、会话存储、消息队列等场景。本文将介绍 Redis 的核心概念和实战应用。
1. Redis 基础
安装与启动
# Ubuntu 安装
sudo apt install redis-server
# 启动服务
sudo systemctl start redis
sudo systemctl enable redis
# 连接客户端
redis-cli
# 测试
127.0.0.1:6379> ping
PONG
基本命令
# 字符串操作
SET key value
GET key
DEL key
EXISTS key
EXPIRE key 3600
TTL key
2. 数据处理
数据结构
# String
SET user:1:name "Alice"
GET user:1:name
# Hash
HSET user:1 name "Alice" age 30
HGET user:1 name
常用操作
# 批量操作
MSET key1 val1 key2 val2
MGET key1 key2
# 计数操作
INCR counter
INCRBY counter 5
DECR counter
3. 持久化
RDB 与 AOF
# RDB 配置
save 900 1
save 300 10
save 60 10000
# AOF 配置
appendonly yes
appendfilename "appendonly.aof"
4. 高级特性
主从复制
# 从库配置
replicaof 127.0.0.1 6379
# Redis Sentinel
sentinel monitor mymaster 127.0.0.1 6379 2
5. 缓存策略
常见问题
- 缓存穿透:查询不存在的数据
- 缓存击穿:热点 key 过期
- 缓存雪崩:大量 key 同时过期
6. 实战示例
分布式锁
import redis
import time
r = redis.Redis()
def acquire_lock(lock_name, timeout=10):
end = time.time() + timeout
while time.time() < end:
if r.setnx(f"lock:{lock_name}", 1):
r.expire(f"lock:{lock_name}", 10)
return True
time.sleep(0.001)
return False
7. 小结
Redis 是高性能的内存数据库,构建高并发系统必备。重点是:选择合适的数据结构、合理使用持久化、注意缓存策略、监控性能。