缓存:Redisson 读写锁测试
@Autowired private RedissonClient redissonClient; @Resource private StringRedisTemplate stringRedisTemplate; /** * 写锁 */ @GetMapping("/index/write") @ResponseBody public String writeValue() { RReadWriteLock lock = redissonClient.getReadWriteLock("rw-lock"); RLock rLock = lock.writeLock(); String s = ""; try { rLock.lock(); s = UUID.randomUUID().toString(); Thread.sleep(3000); stringRedisTemplate.opsForValue().set("writeValue", s); } catch (Exception e) { e.printStackTrace(); } finally { rLock.unlock(); } return s; } /** * 读锁 */ @GetMapping("/index/read") @ResponseBody public String readValue() { RReadWriteLock lock = redissonClient.getReadWriteLock("rw-lock"); RLock rLock = lock.readLock(); String s = ""; try { rLock.lock(); s = stringRedisTemplate.opsForValue().get("writeValue"); } catch (Exception e) { e.printStackTrace(); } finally { rLock.unlock(); } return s; }
其实就是共享锁和排他锁机制。