问题引出
1、项目中需要使用redis对key进行有效时长设置
2、在对该key进行有效时长设置时同时需要原子性的增加该key对应的值
3、每次获取当前key对应的value进行大小判断从而进行业务逻辑处理
产生的问题
1、使用set方法直接设置key的有效时长时,该操作将会重置key的有效时长
2、使用increment()方法时该方法会在key不存在时redis会自动建立key并对该key值进行加一操作,但是该新生成的key将不会有过期时间
解决方法
1、对需要set到redis中的key设置一个初始值1并设置该key的有效时长
2、使用increment()方法进行增加后,该方法会返回增加后的值,该值一般情况下一定是大于1的
3、判断如果当前key的值等于1时就说明存在在increment()方法执行时,当前key刚好过期。当前的key是由redis自动执行的加一操作,但是该key是不具备过期时长设置的。此时需要对该key重新设置key的时长

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐