Redis 基础
Redis 是一个开源的高性能键值对内存数据库。
核心特点
- 完全基于内存:读写速度极快(10万+ QPS)
- 丰富的数据类型:String、List、Set、Hash、Sorted Set 等
- 支持数据持久化:RDB 快照和 AOF 日志
- 高可用:主从复制、Sentinel、集群模式
安装
# Ubuntu
sudo apt-get install redis-server
sudo systemctl start redis
# Docker
docker run -d --name redis -p 6379:6379 redis:7-alpine
# 测试连接
redis-cli ping # 返回 PONG
基本命令
# 连接
redis-cli -h localhost -p 6379
# 基础操作
SET name "BookStack"
GET name
DEL name
EXISTS name
EXPIRE name 3600 # 设置过期时间
TTL name # 查看剩余时间
配置
# redis.conf
bind 0.0.0.0
port 6379
requirepass yourpassword
maxmemory 2gb
maxmemory-policy allkeys-lru
appendonly yes
appendfsync everysec
数据持久化
RDB(快照)
save 900 1 # 900秒内至少1个key变更
dbfilename dump.rdb
AOF(追加日志)
appendonly yes
appendfsync everysec # 每秒刷盘
淘汰策略
| 策略 | 说明 |
|---|---|
| noeviction | 不淘汰,写满返回错误 |
| allkeys-lru | 移除最近最少使用的key |
| volatile-lru | 从设置了过期时间的key中移除最近最少使用的 |
实际应用
# 缓存
SET user:1001 '{"name":"Alice","age":30}' EX 3600
# 计数器
INCR page:view:home
# 分布式锁
SET lock:order:123 "server1" NX EX 10
# 消息队列
LPUSH queue task1
RPOP queue
# 排行榜
ZADD leaderboard 1000 "player1"
ZREVRANGE leaderboard 0 9 WITHSCORES
