starter
Redis Starter
under-utils-redis-starter
接入 Redis store、分布式锁、cache-aside、逻辑过期缓存和缓存观测。
依赖
<dependency>
<groupId>io.github.yexianglun-d</groupId>
<artifactId>under-utils-redis-starter</artifactId>
<version>1.0.2</version>
</dependency> 适用场景
多实例部署、分布式锁和缓存模板场景。
能力边界
| 文档来源 | under-utils-redis-starter/README.md |
|---|---|
| API 入口 | 查看 Redis Starter 相关 API |
| 设计约束 | 保留失败语义、配置 key 和 public API 兼容性说明,不以营销描述替代真实边界。 |
依赖业务提供 RedissonClient 该能力来自当前模块 README 或 API Review,页面下方同步展示原始 README 内容。
缓存指标可直接读取 该能力来自当前模块 README 或 API Review,页面下方同步展示原始 README 内容。
Micrometer 观测可选 该能力来自当前模块 README 或 API Review,页面下方同步展示原始 README 内容。
README 同步内容
来源:under-utils-redis-starter/README.md,构建时自动读取并渲染。
Spring Boot 自动装配模块,用于接入 under-utils-redis 的分布式能力。它会引入 under-utils-spring-starter,因此同样包含请求上下文、限流和防重复提交的本地能力。
本模块要求业务项目提供已经配置好的 RedissonClient,不会创建 Redis 连接。
依赖
<dependency>
<groupId>io.github.yexianglun-d</groupId>
<artifactId>under-utils-redis-starter</artifactId>
<version>1.0.2</version>
</dependency>
自动装配 Bean
存在 RedissonClient 时,可按配置启用 Redis 相关 Bean:
RedisRateLimitStoreRedisRepeatSubmitStoreDistributedLockTemplateCacheValueCodecCacheOptionsCacheAsideTemplateLogicalExpireCacheOptionsLogicalExpireCacheTemplateMicrometerCacheOperationObserver,仅在存在MeterRegistry且没有用户自定义CacheOperationObserver时创建
配置
under:
utils:
web:
rate-limit:
store: redis
repeat-submit:
store: redis
redis:
lock-enabled: true
cache:
enabled: true
ttl: 5m
null-ttl: 30s
jitter: 10s
rebuild-lock-enabled: true
logical-cache:
enabled: true
logical-ttl: 5m
physical-ttl: 30m
observation:
enabled: true
退让规则
starter 不会替换业务项目中同角色 Bean。常见退让点:
RateLimitStoreRepeatSubmitStoreDistributedLockTemplateCacheValueCodecCacheOptionsCacheAsideTemplateLogicalExpireCacheOptionsLogicalExpireCacheTemplateCacheOperationObserver
Redis 或 Redisson 异常默认向外传播。如果业务需要 fail-open、降级或自定义序列化策略,请在业务项目内提供自定义 store、template 或 codec。
Micrometer 观测
当应用上下文存在 MeterRegistry,且没有用户自定义 CacheOperationObserver Bean 时,starter 会自动创建 MicrometerCacheOperationObserver,把 cache-aside 和 logical-cache 的事件写入 Micrometer。
默认指标和 observation:
under.utils.redis.cache.operationsunder.utils.redis.cache.duration- observation name:
under.utils.redis.cache
如需关闭自动接入:
under:
utils:
redis:
observation:
enabled: false
该 observer 不会把业务 key 或实际 cache key 写入 tag。