当前位置: 首页 > news >正文

修改redis改key值不改过期时间

今天在做图片验证码的时候遇到一个问题。用redis的生命周期来存放,用户输入错误次数。

三十秒内输错三次就,等待三十分钟。

那么问题来了,如果说第一次输入错误,应该是 key为用户用,value 为 次数2 ex就为30秒

,但是第二次 set把值改为2时,生命周期就会被覆盖。如果不加过期时间就是一个有效,加了那就是重新给了30秒。

第一种方法:

第二次输入错误的时候,用tll 取出第一次的过期时间,继续设置为第二次的过期时间。

第二种:

使用SETRANGE命令
用 value 参数覆写(overwrite)给定 key 所储存的字符串值,从偏移量 offset 开始。

>SET greeting "111111"
"OK"
>ttl greeting
"-1"
>EXPIRE greeting 30
"1"
>ttl greeting
"25"
>SETRANGE greeting 0 "222222"
"6"
>GET greeting
"222222"
>ttl greeting
"16"
 

第三种:

如果你的value值为数字,nice可以进行实现自增操作,不改变生命周期。

总结:

第一种:    不适用,中间的存在偏差,但已经很小了。
方案是可行,但不够完美。

第二种:  很实用,但是不好理解。

第三种:  是做自增操作,那就意味着你的值只能是数字,也不能指定自增的值,不能满足任何场景。

 

http://www.lryc.cn/news/33295.html

相关文章:

  • Spark的DataFrame使用
  • 【Flutter】入门Dart语言:操作符的基本用法
  • Linux线程概念
  • C#基础教程10 方法
  • java高性能并发计数器之巅峰对决
  • HTTPS简介
  • K-means聚类
  • 04-SQL基础(表管理,约束,多表连接,子查询)
  • 统计学 一元线性回归
  • 【软件开发】基于PyQt5开发的标注软件
  • CSS3新特性
  • 35 openEuler搭建repo(yum)服务器-创建、更新本地repo源
  • 【三.项目引入axios、申明全局变量、设置跨域】
  • 启动u盘还原成普通u盘(Windows Diskpart)
  • 深入理解机器学习——偏差(Bias)与方差(Variance)
  • 分布式新闻项目实战 - 13.项目部署_持续集成(Jenkins) ^_^ 完结啦 ~
  • Linux c/c++技术方向分析
  • JavaScript 高级3 :函数进阶
  • 【项目】Java树形结构集合分页,java对list集合进行分页
  • java.lang.IllegalArgumentException: itemView may not be null
  • [ 攻防演练演示篇 ] 利用 shiro 反序列化漏洞获取主机权限
  • 达人合作加持品牌布局,3.8女神玩转流量策略!
  • 观点丨Fortinet谈ChatGPT火爆引发的网络安全行业剧变
  • 工业企业用电损耗和降损措施研究
  • 高并发、高性能、高可用
  • 剑指 Offer 62. 圆圈中最后剩下的数字
  • 概率论小课堂:高斯分布(正确认识大概率事件)
  • 剑指 Offer 43. 1~n 整数中 1 出现的次数
  • 如何成为程序员中的牛人/高手?
  • 云原生时代顶流消息中间件Apache Pulsar部署实操之轻量级计算框架