【一线大厂Java面试题合集】第42篇:Redis高阶应用

【一线大厂Java面试题合集】第42篇:Redis高阶应用 第42篇:Redis高阶应用模块:Redis核心与实战 |难度:进阶 |面试频率:★★★★1. 如何用 Redis 实现分布式锁?SETNX 的问题?RedLock 算法?1.1 分布式锁的核心要求在分布式系统中,多个服务实例可能同时操作共享资源,需要分布式锁来保证互斥访问。核心要求:互斥性:任意时刻只有一个客户端持有锁可重入性:同一客户端可多次获取同一把锁防死锁:锁有过期时间,即使持有者崩溃也能自动释放高可用:锁服务不能成为单点一致性:加锁和解锁必须是同一个客户端1.2 基础实现:SETNX最简单的分布式锁使用SETNX(SET if Not eXists):# SETNX 加锁(旧方式,有死锁风险