一、为什么Redis可以用作分布式锁
Redis可以用作分布式锁完全得益于其单进程单线程模式,单线程模式下,同一个时刻只有一个线程会对Redis执行读写操作,因此是不会出现脏读与写的情况,而且Redis的命令是原子的。
既然Redis是单线程模式,那它的性能为什么还是这么快呢?
- 由C语言开发的
- 内存读写
- 单线程可以简化算法的逻辑,且单线程避免了线程切换以及加锁释放锁带来的消耗
- 非阻塞多路 I/O 复用机制。
二、Redis作为分布式锁需要注意什么
- 互斥性
- 可重入性
- 锁超时
- 高效、高可用性
三、基于Reids实现分布式锁