随笔分类 - Redis
Redis
摘要:一.背景 SpringCloudGateway增加基于Redis的限流功能,但由于认证鉴权功能也是在网关连接Redis完成,本着上级上单一职责的原则,尽量将认证鉴权Redis与限流使用的Redis独立开来,在网关配置了多套Redis数据源用于实现不同的功能,总结和记录在配置过程的经验 二.想法 由于
阅读全文
摘要:背景 2022年7月27日晚,21:05分 新功能上线后,通过Grafana上查到Redis多个性能指标有很大的升高,Redis使用的是腾讯云的云服务 这里通过这个问题,记录和总结整个排查过程,Redis相关指标变化如下 1.CPU和内存参数 CPU利用率: 9%->99%(100%) 内存使用率:
阅读全文
摘要:前言 主要针对目前线上短信被脚本恶意盗刷的情况,用Redis实现滑动窗口限流 示例代码 public void checkCurrentWindowValue(String telNum) { String windowKey = CommonConstant.getNnSmsWindowKey(t
阅读全文
摘要:前言 主要记录下,Redisson中RedLock加锁算法的实现 Redisson分布式锁的缺点 由于Redisson的加锁方式,本质上时是判断某个Redis节点(主节点)是否具有某个key,且Redis集群间会发生异步的主从复制行为,可能会出现重复加锁的问题 在极端情况下, 客户端A加锁成功后,m
阅读全文
摘要:前言 主要介绍Redisson可重入锁,实现可可重入加锁的源码解析 源码分析 这里回头看看加锁的代码如下 <T> RFuture<T> tryLockInnerAsync(long leaseTime, TimeUnit unit, long threadId, RedisStrictCommand
阅读全文
摘要:前言 本篇主要介绍基于Redisson实现的分布式锁,获取锁之后,通过watchdog机制异步的,定时的,递归的判断是否存活,从而进行锁续期 Watchdog机制 在使用Redisson分布式的锁的过程中,如果客户端的请求线程获取锁之后,由于当前任务执行时间较长,线程任务没执行完毕,但又超过了线程占
阅读全文
摘要:前言 主要介绍Redisson可重入锁,通过lua脚本加锁的逻辑源码 目标代码 //通过getLock获取RLock对象,进行加锁 RLock lock = redissonClient.getLock("serviceKey"); lock.lock(); //getLock源码 @Overrid
阅读全文
摘要:前言 本篇主要介绍Redisson分布式锁的配置,项目结构Springboot Maven配置 <!-- redis --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starte
阅读全文
摘要:一.背景 这几天,项目中引入了基于redisson的布隆过滤器,redisson底层使用的redis数据结构为bitmap, 借此机会,留下一篇总结; 二.bitMap的原理 bitmap就是通过最小的单位bit来进行0或者1的设置,表示某个元素对应的值或者状态。 一个bit的值,或者是0,或者是1
阅读全文
摘要:一.引入依赖 <!-- redis --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> <
阅读全文
摘要:https://blog.csdn.net/wlddhj/article/details/89881055
阅读全文
摘要:项目架构: 部分组件如下: SpringCloudAlibaba(Nacos+Gateway+OpenFeign)+SpringBoot2.x+Redis 问题背景: 最近由于用户量增大,在高峰时期,会导致用户服务偶尔Redis出现连接超时的情况, 例如:从Redis中获取手机验证码 ,登录成功后,
阅读全文