解决redis分布式锁超时的方法:
当锁超时时间快到期且逻辑未执行完,可延长锁超时时间。示例:
if redis.call("get",KEYS[1]) == ARGV[1] thenredis.call("set",KEYS[1],ex=3000)elsegetDLock();//重新获取锁
if redis.call("get",KEYS[1]) == ARGV[1] then
redis.call("set",KEYS[1],ex=3000)
else
getDLock();//重新获取锁