1、从效率上来说redis要高于zk,但从安全性方面来说zk更胜一筹,因为zk保证了cp模型
    2、从锁的释放来说,redis对开发人员更友好,通过设置超时,避免了异常抛出后锁的占用,zk则需要考虑在finally中对锁的释放
    3、从锁的形式来说,redis更适用于独占式锁,zk则更适用于顺序式锁。虽然两者都可以实现独占式和顺序式。
    4、在分布式环境中,redis的锁可能会出现一个独占锁被两个线程持有,具体场景为线程A向redis的master节点申请锁成功,master向slave同步数据,但是同步过程中master宕机,数据尚未同步到slave,这时又产生了新的master节点(未同步数据完成)。线程B又来申请同一把锁,因为数据未同步,所以线程B也会申请锁成功。此时,就会出现两个线程同时持有相同的独占锁。针对这种场景,可以借鉴zk的cp模型中,一个议案需要过半数通过才认为有效的做法。这种方式称为redLock,是向多个无关联的redis实例申请锁,若超过半数的机器都申请成功,那么认为锁是有效的,反之则认为申请锁失败