SpringBoot整合Redis调用lua脚本出现空指针异常(序列化器分析)
一、问题描述业务中出现需要保证原子性的一系列缓存操作,所以决定使用lua脚本来保证原子性。但是调用过程中lua脚本抛出了异常:attempt to perform arithmetic on local ‘xxx’ (a nil value)发生异常的lua脚本代码(部分)--- 省略...loca
七岁几胆敢预言自己,操一艘战机
一、问题描述业务中出现需要保证原子性的一系列缓存操作,所以决定使用lua脚本来保证原子性。但是调用过程中lua脚本抛出了异常:attempt to perform arithmetic on local ‘xxx’ (a nil value)发生异常的lua脚本代码(部分)--- 省略...loca
一、缓存更新策略1、三种策略内存淘汰:redis自带的内存淘汰机制过期淘汰:利用expire命令给数据设置过期时间主动更新:主动完成数据库和缓存的同时更新2、策略选择低一致性需求:内存淘汰或过期淘汰高一致性需求:主动更新为主,过期淘汰兜底3、主动更新的方案Cache Aside:缓存调用者在更新数据
Shiro整合JWT实现认证和权限鉴定(详细清晰)一、前情提要JWT:服务端根据规范生成一个令牌(token),并且发放给客户端(保存在客户端)。此时客户端请求服务端的时候就可以携带者令牌,以令牌来证明自己的身份信息。Shiro:Java的一个安全(权限)框架,用户登录时把身份信息(用户名/手机号/
Redis实现验证码并限制每日发送次数1、功能输入手机号,点击发送后随机生成六位数字码,2分钟有效输入验证码,点击验证,返回成功或失败每个手机号每天只能输3次2、分析每个手机每天只能输3次:incr每次发送之后+1,当值为3时提示不能发送,过期时间为当天结束随机生成6位数字验证码:RandomUti
Redis基础随着用户量的增加,服务端CPU压力和内存压力增加,故需要引入多台服务器,并使用负载均衡将请求均摊至各台服务器,而这就出现了session的共享问题,缓存数据库的存在解决了这个问题。解决方法:存在cookie里:不安全、网络负担导致效率低存在文件服务器或者数据库里:大量的IO效率问题se