修改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可以进行实现自增操作,不改变生命周期。

总结:
第一种: 不适用,中间的存在偏差,但已经很小了。
方案是可行,但不够完美。
第二种: 很实用,但是不好理解。
第三种: 是做自增操作,那就意味着你的值只能是数字,也不能指定自增的值,不能满足任何场景。
相关文章:
修改redis改key值不改过期时间
今天在做图片验证码的时候遇到一个问题。用redis的生命周期来存放,用户输入错误次数。 三十秒内输错三次就,等待三十分钟。 那么问题来了,如果说第一次输入错误,应该是 key为用户用,value 为 次数2 ex就为30秒 &…...
Spark的DataFrame使用
内容目录创建SparkSession对象从CSV文件中读取从JSON文件中读取从Parquet文件中读取从数据列表中创建DataFrame从字典列表中创建DataFrame选择一列选择多列过滤年龄大于30的数据过滤名字为Alice的数据可以使用and、or、not等操作符进行组合查询按照年龄分组并计算平均年龄和最大…...
【Flutter】入门Dart语言:操作符的基本用法
文章目录 一、前言二、常用的操作符1.算术操作符2.关系操作符3.逻辑操作符4.赋值操作符5.三元运算符三、总结一、前言 当我们在编写Flutter应用程序时,操作符是我们不可或缺的工具。它们是用于执行各种操作的关键字和符号,可以帮助我们简化代码并提高效率。熟练掌握各种类型…...
Linux线程概念
重新认识一下进程 在之前写过的与进程相关的博文中,都把进程看作是只有一个PCB的进程。如图: 而实际上,在Linux中,进程不止一个执行流,而是可能会有几个或很多个。同一个进程中,每一个执行流都指向同一个虚…...
C#基础教程10 方法
C#方法 方法的语法访问修饰符:返回类型:方法名称:参数列表:方法体:返回值:方法的调用参数传递按值传递按引用传递输出参数方法的重载总结方法是C#中最基本的代码结构之一。方法是一组可重复使用的代码,它接受输入,执行一些操作并返回结果。在本教程中,我们将深入了解C…...
java高性能并发计数器之巅峰对决
并发计数器各个方案介绍方案概述1. jdk5提供的原子更新长整型类 AtomicLong2. synchronized3. jdk8提供的 LongAdder 【单机推荐】4. Redisson分布式累加器【分布式推荐】方案介绍jdk5提供的原子更新长整型类 AtomicLong在JDK1.5开始就新增了并发的Integer/Long的操作工具类Ato…...
HTTPS简介
HTTPS是HTTP开启TLS传输协议,客户端要拿到服务端的公钥,用公钥加密数据后再进行传输,防止数据泄露后背篡改。它要解决两个问题:怎么保证公钥可信怎么加密数据公钥可信问题客户端从服务端获取公钥的时候,存在请求被拦截…...
K-means聚类
原理说明 Kmeans是一种常见的聚类算法,用于将相似的数据点归类到不同的群组中。Kmeans的原理如下: 初始化:Kmeans算法首先需要初始化一个用户指定数量的聚类中心点,通常是随机选取K个数据点作为聚类中心点。 分配:对…...
04-SQL基础(表管理,约束,多表连接,子查询)
本文章主要内容 1、表的管理:创建表,修改表结构,删除字段,修改字段,添加字段,删除表,添加表约束; 2、数据管理:新增记录,修改记录,删除记录&…...
统计学 一元线性回归
统计学 一元线性回归 回归(Regression):假定因变量与自变量之间有某种关系,并把这种关系用适当的数学模型表达出来,利用该模型根据给定的自变量来预测因变量 线性回归:因变量和自变量之间是线性关系 非线…...
【软件开发】基于PyQt5开发的标注软件
这里是基于PyQt5写的面向目标检测的各类标注PC端软件系统。目前现有的labelme软件和labelImg开源软件无法满足特殊数据集的标注要求,而且没有标注顺序的报错提示。当然我设计的软件就会不具有适用性了(毕竟从下面开发的软件可以明显看出来我做的基本上是…...
CSS3新特性
CSS3新特性前言css3选择器边框特性背景参考前言 css3作为css的升级版本,css3提供了更加丰富实用的规范。新特性有: css3选择器边框特性多背景图颜色与透明度多列布局与弹性盒模型布局盒子的变形过渡与动画web字体媒体查询阴影 css3选择器 css3选择器…...
35 openEuler搭建repo(yum)服务器-创建、更新本地repo源
文章目录35 openEuler搭建repo(yum)服务器-创建、更新本地repo源35.1 获取ISO发布包35.2 挂载ISO创建repo源35.3 创建本地repo源35.4 更新repo源35 openEuler搭建repo(yum)服务器-创建、更新本地repo源 使用mount挂载,…...
【三.项目引入axios、申明全局变量、设置跨域】
根据前文《二.项目使用vue-router,引入ant-design-vue的UI框架,引入less》搭建好脚手架后使用 需求: 1.项目引入axios 2.申明全局变量 3.设置跨域 简介:axios本质上还是对原生XMLHttpRequest的封装,可用于浏览器和nodejs的HTTP客…...
启动u盘还原成普通u盘(Windows Diskpart)
使用windows系统的diskpart 命令解决系统盘恢复成普通U盘的问题:1. 按Windows R键打开运行窗口。在搜索框中输入“ Diskpart ”,然后按 Enter 键。2. 现在输入“ list disk ”并回车。3. 然后输入“ select disk X ”(将 X 替换为可启动U盘的…...
深入理解机器学习——偏差(Bias)与方差(Variance)
分类目录:《深入理解机器学习》总目录 偏差(Bias)与方差(Variance)是解释学习算法泛化性能的一种重要工具。偏差方差分解试图对学习算法的期望泛化错误率进行拆解,我们知道,算法在不同训练集上学…...
分布式新闻项目实战 - 13.项目部署_持续集成(Jenkins) ^_^ 完结啦 ~
欲买桂花同载酒,终不似,少年游。 系列文章目录 项目搭建App登录及网关App文章自媒体平台(博主后台)自媒体文章审核延迟任务kafka及文章上下架App端文章搜索后台系统管理Long类型精度丢失问题定时计算热点文章(xxl-Job…...
Linux c/c++技术方向分析
一、C与C介绍 1.1 说明 c语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发,如嵌入式。C语言能以简易的方式编译、处理低级存储器。是一种高效率程序设计语言。 c(c plus plus)是一种计算机高级程序设计语言&a…...
JavaScript 高级3 :函数进阶
JavaScript 高级3 :函数进阶 Date: January 19, 2023 Text: 函数的定义和调用、this、严格模式、高阶函数、闭包、递归 目标: 能够说出函数的多种定义和调用方式 能够说出和改变函数内部 this 的指向 能够说出严格模式的特点 能够把函数作为参数和返…...
【项目】Java树形结构集合分页,java对list集合进行分页
Java树形结构集合分页需求难点实现第一步:查出所有树形集合数据 (需进行缓存处理)selectTree 方法步骤:TreeUtil类:第二步:分页 GoodsCategoryController分页getGoodsCategoryTree方法步骤:第三…...
脑机新手指南(八):OpenBCI_GUI:从环境搭建到数据可视化(下)
一、数据处理与分析实战 (一)实时滤波与参数调整 基础滤波操作 60Hz 工频滤波:勾选界面右侧 “60Hz” 复选框,可有效抑制电网干扰(适用于北美地区,欧洲用户可调整为 50Hz)。 平滑处理&…...
【力扣数据库知识手册笔记】索引
索引 索引的优缺点 优点1. 通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。2. 可以加快数据的检索速度(创建索引的主要原因)。3. 可以加速表和表之间的连接,实现数据的参考完整性。4. 可以在查询过程中,…...
.Net框架,除了EF还有很多很多......
文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...
渗透实战PortSwigger靶场-XSS Lab 14:大多数标签和属性被阻止
<script>标签被拦截 我们需要把全部可用的 tag 和 event 进行暴力破解 XSS cheat sheet: https://portswigger.net/web-security/cross-site-scripting/cheat-sheet 通过爆破发现body可以用 再把全部 events 放进去爆破 这些 event 全部可用 <body onres…...
DBAPI如何优雅的获取单条数据
API如何优雅的获取单条数据 案例一 对于查询类API,查询的是单条数据,比如根据主键ID查询用户信息,sql如下: select id, name, age from user where id #{id}API默认返回的数据格式是多条的,如下: {&qu…...
【HTML-16】深入理解HTML中的块元素与行内元素
HTML元素根据其显示特性可以分为两大类:块元素(Block-level Elements)和行内元素(Inline Elements)。理解这两者的区别对于构建良好的网页布局至关重要。本文将全面解析这两种元素的特性、区别以及实际应用场景。 1. 块元素(Block-level Elements) 1.1 基本特性 …...
pikachu靶场通关笔记22-1 SQL注入05-1-insert注入(报错法)
目录 一、SQL注入 二、insert注入 三、报错型注入 四、updatexml函数 五、源码审计 六、insert渗透实战 1、渗透准备 2、获取数据库名database 3、获取表名table 4、获取列名column 5、获取字段 本系列为通过《pikachu靶场通关笔记》的SQL注入关卡(共10关࿰…...
Rapidio门铃消息FIFO溢出机制
关于RapidIO门铃消息FIFO的溢出机制及其与中断抖动的关系,以下是深入解析: 门铃FIFO溢出的本质 在RapidIO系统中,门铃消息FIFO是硬件控制器内部的缓冲区,用于临时存储接收到的门铃消息(Doorbell Message)。…...
使用 SymPy 进行向量和矩阵的高级操作
在科学计算和工程领域,向量和矩阵操作是解决问题的核心技能之一。Python 的 SymPy 库提供了强大的符号计算功能,能够高效地处理向量和矩阵的各种操作。本文将深入探讨如何使用 SymPy 进行向量和矩阵的创建、合并以及维度拓展等操作,并通过具体…...
华硕a豆14 Air香氛版,美学与科技的馨香融合
在快节奏的现代生活中,我们渴望一个能激发创想、愉悦感官的工作与生活伙伴,它不仅是冰冷的科技工具,更能触动我们内心深处的细腻情感。正是在这样的期许下,华硕a豆14 Air香氛版翩然而至,它以一种前所未有的方式&#x…...
