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

news2025/7/22 18:09:12

今天在做图片验证码的时候遇到一个问题。用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.coloradmin.cn/o/395014.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[数据结构]:13-插入排序(顺序表指针实现形式)(C语言实现)

目录 前言 已完成内容 插入排序实现 01-开发环境 02-文件布局 03-代码 01-主函数 02-头文件 03-PSeqListFunction.cpp 04-SortCommon.cpp 05-SortFunction.cpp 结语 前言 此专栏包含408考研数据结构全部内容,除其中使用到C引用外,全为C语言代…

M2E2: Cross-media Structured Common Space for Multimedia Event Extraction 论文解读

Cross-media Structured Common Space for Multimedia Event Extraction 论文:multimediaspace2020.pdf (illinois.edu) 代码:limanling/m2e2: Cross-media Structured Common Space for Multimedia Event Extraction (ACL2020) (github.com) 期刊/会议…

【3D点云】目标检测总结(持续汇总)

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目…

Java Spring 中 Resources 路径若干问题

ant-style资源路径通配符 ANT通配符有三种: 最长匹配规则(has more characters),即越精确的模式越会被优先匹配到。例如,URL请求/app/dir/file.jsp,现在存在两个路径匹配模式/**/*.jsp 和 /app/dir/*.js…

C++回顾(九)——多继承

9.1 多继承 9.1.1 概念 一个类有多个直接基类的继承关系称为多继承(多个父类)多继承声明语法 class 派生类名 : 访问控制 基类名1 , 访问控制 基类名2 , … , 访问控制 基类名n {数据成员和成员函数声明 };类 C 可以根据访问控制同时…

Git在某个节点切出新分支

操作前,必须先备份分支,避免丢失代码!!!! 操作前,必须先备份分支,避免丢失代码!!!! 操作前,必须先备份分支,避…

Mr. Cappuccino的第46杯咖啡——Maven多模块项目可插拔式打包部署方案

Maven多模块项目可插拔式打包部署方案需求调研前准备项目结构模块之间的依赖关系项目pom文件项目代码代码运行效果方案调研需要实现的效果解决方案代码实现打包运行效果完整打包测试插拔式打包测试最佳实践项目结构测试运行效果完整打包测试插拔式打包测试需求 早期的【train-h…

吐血整理,自动化测试pytest测试框架,资深测试带你少走弯路......

目录:导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜)前言 Pytest框架详解 py…

ledcode----丢失的数字

目录 题目截图: 题目接口: 第一种解法: 思路: 第二种解法:差值法 思路: 第三种解法:位运算异或法 关于异或操作符的预备知识: 思路: 例子:输入数组[0…

海思3531a pjsip交叉编译

学习文档: PJSUA2 Documentation — PJSUA2 Documentation 1.0-alpha documentationhttps://www.pjsip.org/docs/book-latest/html/index.html ./configure --prefix/opensource/pjproject-2.12/build3531a \ --host/opt/hisi-linux/x86-arm/arm-hisi…

MySQL全解[集群篇]

目录日志错误日志二进制日志格式查看删除查询日志慢查询日志主从复制原理docker搭建分库分表拆分策略垂直拆分垂直分库垂直分表水平拆分水平分库水平分表实现技术MyCat2mysql2对比mycat1.xdocker运行mycat2日志 错误日志 错误日志是 MySQL 中最重要的日志之一,它记…

NYUv2生成边界GT(2)

由NYUv2生成边界GT(1)可知,我们每张GT图片都生成一个对应的.bin文件。存放在D:\datasets\data_proc\train\edge_labels_40文件夹下,下一步我们需要生成.png文件,即需要使用convert_bin_to_png.py。 # -*- coding: utf-8 -*- import numpy as…

【Azure 架构师学习笔记】-Azure Storage Account(1)- Queue Storage

本文属于【Azure 架构师学习笔记】系列。 本文属于【Azure Storage Account】系列。 接上文 【Azure 架构师学习笔记】-Azure Storage Account(1)-类型简介 前言 Azure Storage Queues 是一个专门用来处理基于云环境队列的Azure 服务。每个队列都维护着…

Netty之ChannelHandler初解

目录 目标 Netty版本 Netty官方API 实战 Netty服务器 入栈ChannelHandler读入数据顺序案例 出栈ChannelHandler写出数据顺序案例 ChannelHandlerContext和NioSocketChannel写入数据时有什么不同 Pipeline添加多个ChannelHandler有什么意义 目标 掌握ChannelHandler基…

海康工业相机使用教程

工业相机使用一、硬件连接1、准备材料2、相机供电(1)区分电源适配器正负极(2)连接相机电源线缆(3)连接完成后,相机蓝色灯常亮则成功3、软件连接(1)MVS客户端下载地址&…

你真的会在阳光下拍照片么?

你好,我是小麥。 上节课我们讲了如何通过影子判断光的质量,也就是光的软硬,这节课我们来接着说一说光的方向和环境光的实际运用。 虽然在现实生活里,我们可能没有从软硬的角度观察过光线,但我相信你在拍照片的时候一…

第九章:Java集合

第九章:Java集合 9.1:Java集合框架概述 数组、集合都是对多个数据进行存储(内存层面,不涉及持久化)操作的结构,简称Java容器。 数组存储多个数据方面的特点 一旦初始化以后,其长度就确定了。数组一旦定义好&#xff…

计算机操作系统:实验三存储管理程序设计

一、目的和要求 目的 存储管理的主要功能之一是合理地分配主存空间。请求页式管理是一种常用的虚拟存储管理技术。 本实验的目的是通过请求页式存储管理中页面置换算法的模拟设计,来了解虚拟存储技术的特点,掌握请求页式存储管理的页面置换算法。 要求…

数字工厂管理系统的应用案例

数字工厂管理系统是制造企业应用数字化工厂技术实现研发设计数字化、生产准备数字化、 生产制造数字化、运营管理数字化和营销服务数字化的重要手段,即通过应用数字相关技术提升产品全生命周期数字化水平,从而提升企业经营的可靠性、安全性和经济性。 任…

C++回顾(十)—— 多态

10.1 问题引出 10.1.1 如果子类定义了与父类中原型相同的函数会发生什么? 函数重写 在子类中定义与父类中原型相同的函数,函数重写只发生在父类与子类之间 重载与重写区别: (1)重载:同一个作用域&#xf…