使用redis进行批量加锁并设置到期时间

572 阅读1分钟

对于单一的数据加锁,通常直接使用 stringRedisTemplate.opsForValue().setIfAbsent(K key, V value)如果键不存在则新增,存在则不改变已经有的值。 根据返回值判断是否加锁成功 一般情况下,我们不需要永久锁,所以一般会设置到期时间 stringRedisTemplate.opsForValue().setIfAbsent(K key, V value, long timeout, TimeUnit unit) 来实现,可以满足设置到期时间,返回值,不存在即创建的情景。 但是在储存需要对数据进行批量加锁处理,并且可能中间待加锁的key已经被其他业务操作加锁的情况下,来实现。 redisTemplate提供的multiSetIfAbsent并不能设置到期时间,那就需要自己封装调用方法