提问redis分布式锁是怎么实现的回答redisson中分布式锁主要利用了setnx命令set if not exists和lua脚本加锁、设置过期时间等。获取锁执行成功则执行业务完成后释放锁获取失败则不执行业务。提问redis实现分布式锁如何合理控制锁的有效时长回答在redisson的分布式锁中提供一个看门狗Watch Dog一个线程获取锁成功后Watch Dog会给持有的线程续期默认是每隔10秒续期一次。提问redisson这个锁可以重入吗回答可以重入多个锁重入需要判断是否是当前线程在redis中进行存储的时候使用hash结构来存储线程信息和重入次数。提问redisson锁能解决主从数据一致的问题吗回答不能解决但是可以使用redisson提供的红锁在多个redis实例上创建锁来解决但是这样的话性能就太低了。如果业务中需要保证数据的强一致性建议采用zookeeper实现分布式锁。