# 缓存工程实验室

这个项目把无外部依赖的缓存策略测试与真实 Redis 集成测试分开。先运行单元测试理解 Cache-Aside、TTL 抖动、热点计数和容量预算，再启动 Redis 验证数据类型、分布式锁和滑动窗口限流。

## 运行单元测试

```bash
mvn test
```

要求 JDK 21+ 和 Maven 3.9+。未传 `redis.uri` 时，集成测试会跳过。

## 运行 Redis 集成测试

```bash
docker compose up -d --wait
mvn -Dredis.uri=redis://:lab-password@localhost:6380 test
```

执行测试后可以查看实例状态：

```bash
docker compose exec redis redis-cli -a lab-password INFO memory
docker compose exec redis redis-cli -a lab-password SLOWLOG GET 10
docker compose exec redis redis-cli -a lab-password LATENCY DOCTOR
```

运行 `docker compose down` 会停止容器但保留命名卷。只有明确不再需要实验数据时，才运行 `docker compose down -v` 删除卷。

## 版本和安全边界

- Java 客户端固定为 Lettuce 7.6.0。
- Compose 镜像固定为 Redis 8.6.1。
- 示例密码只用于本机实验，不能复制到生产。
- 单节点实验不能证明 Sentinel、Cluster、复制切换或 Redlock 的安全性。
