业务需求
全局id生成器需要满足一下特点
高可用,唯一性,高性能,递增性,安全性
id的组成分为三部分:符号位,时间戳,序列号。
如何将这三部分合在一起作为long返回呢?答案是使用位运算,我们可以这样想,将时间戳 左移32位,低位都补0正好空出了序列号的位置,将序列号位置与自增长count进行与运算就可。
@Component
public class RedisIdWorker {
@Autowired
private StringRedisTemplate redisTemplate;
/**
* 开始时间戳
*/
private static final long BEGI