前言:
随着互联网信息技术的飞速发展,数据量不断增大,业务逻辑日趋复杂,对系统的高并发访问、海量数据处理的场景也越来越多,传统的集中式系统已经逐渐无法满足要求,分布式系统被使用在更多的场景中。
分布式系统有以下几个特点:
- 可扩展性:可通过横向水平扩展提高系统的性能和吞吐量。
- 高可靠性:高容错,即使系统中一台或几台故障,系统仍可提供服务。
- 高并发性:各机器并行独立处理和计算。
- 廉价高效:多台小型机而非单台高性能机。
在分布式环境中需要重点关注和解决的问题之一就是互斥性问题。本篇文章重点介绍Redis实现分布式锁的步奏。
Redis实现
分布式锁的要求
- 互斥,在任何时候,只有一个客户端能持有锁。
- 没有死锁,即使客户端在持有锁的时候崩溃,也会有其他客户端能获得锁,有超时机制。
- 故障容忍,只有大多数Redis节点存活时,客户端仍可以获得锁和释放锁。