37 lines
2.4 KiB
Markdown
37 lines
2.4 KiB
Markdown
# 后端移除 Redis 实施记录
|
|
|
|
## 实施时间
|
|
- 2026-03-28
|
|
|
|
## 修改内容
|
|
- 为 `ruoyi-common` 增加 `spring-boot-starter-test` 测试依赖
|
|
- 新增 `InMemoryCacheStoreTest` 作为本地缓存基础设施的失败测试基线
|
|
- 新增 `InMemoryCacheEntry`、`InMemoryCacheStats`、`InMemoryCacheStore` 实现本地缓存基础能力
|
|
- 将 `RedisCache` 改为基于进程内缓存的统一门面,补充 TTL、前缀检索、批量删除、递增和统计能力
|
|
- 移除 `spring-boot-starter-data-redis`、`commons-pool2` 和后端 Redis 专属配置类
|
|
- 保持认证、验证码、密码错误次数、防重提交、在线用户扫描继续依赖 `RedisCache` 抽象
|
|
- 将限流实现改为本地窗口计数,将缓存监控改为本地统计视图
|
|
- 修正 `DictUtils` 读取字典缓存时对本地 `List<SysDictData>` 的兼容
|
|
- 删除 `application-dev.yml` 中的 Redis 开发配置
|
|
- 补充 `RedisCacheTest`、`DictUtilsTest`、`RateLimiterAspectTest`、`TokenServiceLocalCacheTest`、`CacheControllerTest`
|
|
|
|
## 文档路径
|
|
- `doc/2026-03-28-remove-redis-backend-plan.md`
|
|
- `doc/implementation-report-2026-03-28-remove-redis-backend.md`
|
|
|
|
## 验证结果
|
|
- 已验证 `mvn -pl ruoyi-common -am -Dtest=InMemoryCacheStoreTest test` 通过
|
|
- 已验证 `mvn -pl ruoyi-common,ruoyi-framework -am test` 通过
|
|
- 已验证 `mvn -pl ruoyi-framework -am test` 通过
|
|
- 已验证 `mvn -pl ruoyi-framework,ruoyi-admin -am test` 通过
|
|
- 已验证 `mvn test` 通过
|
|
- 已验证 `mvn -pl ruoyi-admin -am package -DskipTests` 通过并生成可运行包
|
|
- 已验证应用以 `java -jar target/ruoyi-admin.jar --server.port=18080` 成功启动,日志中未出现 Redis 初始化失败
|
|
- 已手工验证 `/captchaImage`、`/login/test`、`/getInfo`、`/monitor/online/list`、`/monitor/cache`、`/monitor/cache/getNames`、`/monitor/cache/getKeys/login_tokens:`、`/system/config/refreshCache`、`/system/dict/type/refreshCache` 可正常返回
|
|
- 已手工验证验证码缓存前缀清理成功,在线用户强退后原 token 再访问在线列表返回 `401`
|
|
|
|
## 说明
|
|
- 启动校验时仓库根目录直接执行 `mvn -pl ruoyi-admin -am spring-boot:run` 会落到聚合 `pom`,因此改为先本地打包再使用 `java -jar` 启动
|
|
- 首次以 `8080` 启动时因本机端口占用失败,改用 `18080` 后启动成功;该问题与 Redis 移除无关
|
|
- 测试和手工验证结束后,已主动停止本次任务拉起的 Java 进程
|