
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
验证码防刷校验为了避免验证码重复发送,可以引入redis将验证码缓存起来;发送验证码,先去缓存中查,如果有,判断时间,确保60s之后才能再次发送验证码;如果没有,就可以发送;验证码的再次校验,使用redis将验证码缓存起来,并设置过期时间,如果验证码匹配成功,就立即删除缓存;key->sms:code:15825826017value->45678_当前时间(System.curren
1、双写模式双写模式:就是写完数据库之后再去写缓存,保持缓存一致性;脏数据问题:如上图,线程A和B都去写数据库,正常情况下应该是,A先写数据库先写缓存,B后写数据库后写缓存;但是由于卡顿等原因,导致写缓存2在最前,写缓存1在后面就出现了不一致;出现脏数据,但是这是暂时性的脏数据问题,在数据稳定,缓存过期以后,又能得到最新的正确数据;2、失效模式失效模式:简言之就是写完数据库,不用写缓存,而是删缓存
之前说的如果使用setnx做分布式锁的时候,会有锁续期的问题,也就是说如果锁过期时间10s,而业务处理花了30s,而redisson就可以处理恰好处理这类锁续期的问题;而这类自动续期的机制就是所谓的看门狗机制总的来说就是默认锁过期时间是30s,而自动续期机制在源码当中就是开启了定时任务,定时间隔是看门狗时间的三分之一,也就是10s,所以就是在业务没有处理完的情况下锁默认每隔10s续期到30s;下面
ThreadLocal原理ThreadLocal给我们的独立线程提供存放局部变量缓存。避免线程安全问题1、多线程情况下2、每个线程之间相互隔离3、传递参数应用场景:Seata解决分布式事务问题创建一个全局的事务Id缓存到ThreadLocal中;执行我们的目标方法从ThreadLocal去除全局的事务Id传递给接口TreadLocal核心API1、Get获取当前线程缓存的局部变量2、Set根据当前
之前说的如果使用setnx做分布式锁的时候,会有锁续期的问题,也就是说如果锁过期时间10s,而业务处理花了30s,而redisson就可以处理恰好处理这类锁续期的问题;而这类自动续期的机制就是所谓的看门狗机制总的来说就是默认锁过期时间是30s,而自动续期机制在源码当中就是开启了定时任务,定时间隔是看门狗时间的三分之一,也就是10s,所以就是在业务没有处理完的情况下锁默认每隔10s续期到30s;下面







