Files
loan-pricing/doc/implementation-report-2026-03-28-remove-redis-backend.md
2026-03-28 10:59:34 +08:00

2.4 KiB

后端移除 Redis 实施记录

实施时间

  • 2026-03-28

修改内容

  • ruoyi-common 增加 spring-boot-starter-test 测试依赖
  • 新增 InMemoryCacheStoreTest 作为本地缓存基础设施的失败测试基线
  • 新增 InMemoryCacheEntryInMemoryCacheStatsInMemoryCacheStore 实现本地缓存基础能力
  • RedisCache 改为基于进程内缓存的统一门面,补充 TTL、前缀检索、批量删除、递增和统计能力
  • 移除 spring-boot-starter-data-rediscommons-pool2 和后端 Redis 专属配置类
  • 保持认证、验证码、密码错误次数、防重提交、在线用户扫描继续依赖 RedisCache 抽象
  • 将限流实现改为本地窗口计数,将缓存监控改为本地统计视图
  • 修正 DictUtils 读取字典缓存时对本地 List<SysDictData> 的兼容
  • 删除 application-dev.yml 中的 Redis 开发配置
  • 补充 RedisCacheTestDictUtilsTestRateLimiterAspectTestTokenServiceLocalCacheTestCacheControllerTest

文档路径

  • 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 进程