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