redis 实现分布式唯一ID,其实这个也很简单,主要使用redis String数据结构的 increment 方法。
原理:
使用increment方法,每次自加1,主要使用redis的高性能和单线程。
实现方式:
核心代码如下,若是为了保证长度一致,其实可以预先初始化值。现在的这个是从1,2.....逐渐递增的
/**
* 注入Redis字符串模板
*/
@Autowired
private StringRedisTemplate redisTemplate;
/**
* 当前的值 + 1
*
* @param key 键
* @return 返回操作之后的值
*/
public Long increment(final String key) {
return this.redisTemplate.opsForValue().increment(key, 1);
}
/**
* 当前的值加 + value
*
* @param key 键
* @param value 值
* @return 返回操作之后的值
*/
public Long incrementBy(final String key, final long value) {
return this.redisTemplate.opsForValue().increment(key, value);
}