# lock_distributed **Repository Path**: rederxu/lock_distributed ## Basic Information - **Project Name**: lock_distributed - **Description**: 基于Redis实现分布式锁、限流操作(基于SpringBoot)的实现,详细介绍见文章:https://blog.csdn.net/xujianflying/article/details/136662797。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-03-12 - **Last Updated**: 2024-03-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 基于Redis实现分布式锁、限流操作——基于SpringBoot实现 - 本文总结了一种利用Redis实现分布式锁、限流的较优雅的实现方式 - 本文原理介绍较为通俗,希望能帮到有需要的人 ## 一、本文基本实现 - 利用redis的key是否存在判断锁是否存在 - 利用redis的increment/decrement方法进行计数,从而实现限流 - 利用注解,对需要锁定/限流的方法进行配置(用起来超简单!!!) - 利用SpringBoot的拦截器,在访问前判断并加锁,访问完成后释放锁 - 利用@ControllerAdvice捕获全局异常和终止访问 ## 二、为什么选redis - 由于redis的原子性(即其操作属于最基本的操作,要么执行要么不执行,要么全部成功,要么全部不成功),因此,用来计数、记录值是否存在具有较高优势。 - 此外,redis作为效率极高的程序外应用,能有效地独立保存数据,即使是多个服务,也能保持数据一致性(进而实现分布式控制) - 本文总结的分布式锁、限流操作都基于redis实现 - 分布式锁:利用redis的key-value存储结构,判断key是否存在,key在即锁在 - 限流操作:利用redis的原子性,通过increment/decrement方法进行计数,超出则抛出异常,终止访问。 ## 三、Spring Boot的实现方式 - 这里的Spring Boot可以理解为微服务中的一个子服务 - 以下实现是编码过程,运行效果见第四部分,核心实现见本节第3、5部分 ## 更多详细内容见CSDN文章:https://blog.csdn.net/xujianflying/article/details/136662797