1.看门狗机制
注意看门狗机制:redisson会监听持有锁的线程,并每隔一段时间(releaseTime/3,默认releaseTime为30s),如果线程还未释放锁的话,会给锁做一次续期。
2. 主从一致性
实际开发中我们会搭建多台redis服务器,但这些服务器分主次,主服务器负责处理写的操作(增删改),从服务器负责处理读的操作,当从主务器坏了,会从次服务器中选出一个服务器重新作为主服务器,新的线程直接访问新的主服务器。
这样会出现主从一致性问题(存储的信息不一致):
当主服务器宕机时,原先还是次服务器的新主服务器还没有接收主服务器同步过来的信息,导致新的进程无法在新的主redis服务器中获取原有的锁的信息,所以能够直接获取到锁。
为了解决这个问题,redisson使用红锁(RedLock),但是性能不行:
n代表redis服务器的数量。
3. 总结