分布式锁应该具备哪些条件