6bbd49355d29fab6e9110b25402a01cf3dd40eea
问题:Redis 重启或 key 过期后序号从 1 重新计数,与数据库已有编号冲突。 修复方案: - 应用启动后首次生成时,从数据库查询当天最大序号校准 Redis - 使用 Lua 脚本原子操作(校准 + 自增),避免并发竞态 - 后续调用走纯 Redis INCR,无额外数据库开销 - SQL 使用 deleted = b'0' 兼容 bit(1) 列类型 - LIKE 查询转义 % 和 _ 通配符 - 校准异常向上抛出,避免静默产生重复 - calibratedKeys 跨天自动清理旧条目 同步更新单元测试,覆盖校准、纯 Redis 自增、异常处理、SQL 转义等 13 个用例。 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Description
Languages
Java
80.1%
PLpgSQL
12.8%
TSQL
6.8%
Python
0.2%