使用 Redis 实现生成分布式全局唯一ID(使用SpringBoot环境实现)
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.data.redis.core.ValueOperations;
import org.springframework.stereotype.Component;
@Component
public class RedisUniqueIdGenerator {
private static final String UNIQUE_ID_KEY = "unique_id";
@Autowired
private StringRedisTemplate redisTemplate;
public Long generate() {
ValueOperations<String, String> opsForValue = redisTemplate.opsForValue();
Long uniqueId = opsForValue.increment(UNIQUE_ID_KEY);
return uniqueId;
}
}
这段代码使用了Spring Data Redis的StringRedisTemplate
来实现分布式全局唯一ID的生成。通过调用opsForValue().increment(key)
方法,可以原子性地递增给定的key,从而生成全局唯一的ID。这里的UNIQUE_ID_KEY
是Redis中用于存储唯一ID的键。每次调用generate()
方法,都会返回一个递增的唯一ID。
评论已关闭