Redis面试题

题目

redis 在分布式锁中,如果线程 1 获取锁成功,还没有写到从数据库的时候,主数据库挂掉,线程 2 这个时候来获取锁,这个时候可以获取成功,用什么样的方式可以解决。

答案

多节点的 redis 实现分布式锁的时候,使用了分布式锁算法 (RedLock),有效的防止了单点故障。比如有 5 个完全独立的主服务器,在加锁的时候,需要其中大于等于 5/2 台服务器加锁成功,那么就认为该集群加锁成功了。