前言
互联网应用往往是异步应用, 很多时候我们需要使用到锁synchronized
来保持协调性. 但随着业务的增加, 一台服务器已不能满足后期的需求, 这时候就需要集群. 但在集群环境下锁synchronized
就会失效, 因此就到今天的主角 Redis 乐观锁 出来了.
Redis 乐观锁
Redis 乐观锁 的原理是集群共享一个Redis数据, 从而保证的数据的唯一性.
加锁
// 简单版本
String identifier = RandomStringUtils.randomAlphanumeric(32);
if (redisTemplate.opsForValue().setIfAbsent(key, identifier)) {
redisTemplate.expire(key, timeout, TimeUnit.MILLISECONDS);
return identifier;