Redis 分布式 ID 生成器

张开发
2026/4/13 16:25:27 15 分钟阅读

分享文章

Redis 分布式 ID 生成器
1. 完整可运行代码package com.hmdp.utils; import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.stereotype.Component; import java.time.LocalDateTime; import java.time.ZoneOffset; import java.time.format.DateTimeFormatter; /** * Redis分布式ID生成器(黑马点评原版) * 功能:生成全局唯一、有序的分布式ID(订单ID、用户ID等) */ @Component public class RedisIdWorker { /** * 开始时间戳:2022-01-01 00:00:00 UTC对应的秒数 * 运行main方法可验证:1640995200L */ private static final long BEGIN_TIMESTAMP = 1640995200L; /** * 序列号的位数:32位 * 对应ID结构中,低32位存自增序号,高31位存时间戳,最高1位符号位固定为0 */ private static final int COUNT_BITS = 32; // 注入Redis操作模板 private StringRedisTemplate stringRedisTemplate; // 构造方法注入 public RedisIdWorker(StringRedisTemplate stringRedisTemplate) { this.stringRedisTemplate = stringRedisTemplate; } /** * 核心方法:生成下一个全局唯一ID * @param keyPrefix 业务前缀(比如order、user,区分不同业务的ID) * @return 64位long型

更多文章