redis的存值,取值,删除,判断是否过期

缓存问题(五) Redis 缓存过期删除机制 视频地址: https://www.bilibili.com/video/BV1Ha411c7hB 代码地址: https://gitee.com/crazyliyang/video-teaching.git 1.删除机制规则 Redis 无论有没有设置expire, 都会遵循redis的配置好的删除机制, 规则如下: 默认的规则是 volatile-lru 设置了expire的key, 将会在过期时间到后删除; 没有设置expire的缓存key, 不会被删除; ... 阅读详情

1.redis中String类型的存和取

//存验证码
redisDao.set(CommonConstant.BLUECAT_LOGIN_APP_CODE + mobile, captcha+"", 5, TimeUnit.MINUTES);
//取验证码
 redisVCode = redisDao.get(CommonConstant.BLUECAT_LOGIN_APP_CODE + mobile ,String.class);

2.redis中存放list结构的数据

//在redis中保存产品线信息,避免每次查询都从数据库查询
List<Product> list = productMapper.getList();
redisDao.put(CommonConstant.REDIS_PRODUCTIDLISTSTR,"product", JSON.toJSON(list).toString());

3.从redis中取list结构的数据

 //从redis中取所有产品线信息
String productListStr = redisDao.getHashValue(CommonConstant.REDIS_PRODUCTIDLISTSTR,"product");
List<Product> productList = JSON.parseArray(productListStr, Product.class);

4.redis中存放list结构的数据,每个product,存一个数据

//在redis中保存产品线信息,避免每次查询都从数据库查询
List<Product> list = productMapper.getList();
        for(Product product:list){
            redisDao.put(CommonConstant.REDIS_PRODUCTLIST, product.getSign(), CommonUtil.beanToString(product));
        }

5.从redis中取list结构的数据,每个product,存一个数据

//"lm"是产品线标志和product.getSign()值对应
String value = redisDao.getHashValue(CommonConstant.REDIS_PRODUCTLIST, "lm");
Product product = CommonUtil.stringToBean(value, Product.class);
//输出结果
System.out.println(product.getIcon());

6.删除redis

redisDao.del(CommonConstant.REDIS_PRODUCTLIST);

7.判断redis中的数据是否过期

redisDao.hasKey(evaluate.getMsgNum());
true:没过期
false:已过期

8.重置redis的过期时间

redisDao.expire(msgNum,CommonConstant.msgNumUpTime,TimeUnit.MINUTES);

9.查询redis过期的剩余时间:还剩多久过期

 long expireTime = redisDao.ttl(msgNum);

10.批量删除redis中的数据

 /**
     * 平台缓存清理
     * @return
     */
    @RequiresPermissions("system:delcache")
    @RequestMapping(value = "delcache")
    public ResultData delcache(){
        Set<String> delSet = new HashSet<>();
        Set<String> caches = redisDao.getKeysByLike(CommonConstant.CACHE_PREFIX+"*");
        for (String cache : caches) {
            Set<String> keySet = redisDao.zRange(cache, 0, -1);
            for (String key : keySet) {
                delSet.add(key);
            }
        }
        delSet.addAll(caches);
        redisDao.delCollection(delSet);
        return ResultData.ok();
    }

11.redis新增错误次数

//第一个参数是key,第二个是增长的值,第三个是过期时间(24小时)
redisDao.incrementRemain(dayKey,1,24*60*60);
Redis过期策略及实现原理 我们在使用redis时,一般会设置一个过期时间,当然也有不设置过期时间的,也就是永久不过期。当我们设置了过期时间,redis是如何判断是否过期,以及根据什么策略来进行删除的。redis设置过期时间:expire key time(以秒为单位)–这是最常用的方式setex(String key, int seconds, String value)–字符串独有的方式除了字符串自己独有设置过期时间的方法外,其他方法都需要依靠expire方法来设置时间如果没有设置时间,那缓存就是永不过期。 阅读详情

相关推荐

RedisTemplate操作Redis, 看这一篇文章就够了

RedisTemplate 是 Spring Framework 提供的用于操作 Redis 数据库的模板类。通过 RedisTemplate,开发人员可以方便地使用 Spring 提供的 API 来对 Redis 进行操作,比如设置值、获取值、删除值等。RedisTemplate 封装了 Redis 连接、数据序列化、异常处理等操作,简化了与 Redis 的交互过程。 一般情况下,开发人员需要配置 Redis 连接池、序列化器等信息,并将 RedisTemplate 注入到需要使用 Redis 的 Be

时间如瑾 代码如诗 4000

Redis 实现接口访问频率限制

Redis 实现接口访问频率限制 来源:SDK.cn 类型:技术文章 发布:2017-06-01 为什么限制访问频率 做服务接口时通常需要用到请求频率限制 Rate limiting,例如限制一个用户1分钟内最多可以范围100次 主要用来保证服务性能和保护数据安全 因为如果不进行限制,服务调用者可以随意访问,想调几次就调几次,会给服务造成很大的压力,降低性能,再比如有的接口需要验证调...

u010597189的博客 2601

(Redis使用系列) SpirngBoot中关于Redis的值的各种方式的存储与取出 三

我这边对应redis的使用介绍分开五篇,此为篇章三。 (建议初学者五篇都看看,那对于redis的基本使用操作及一些消息的订阅分布都是没问题的了) 这里介绍的是redis中使用各种方式存/取值: import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.sun.sce...

默默不代表沉默 3784

使用redis存取数据

   redis是常用的缓存管理工具,因其读取内存的特性,常被高并发对性能有要求的项目所采用,这里介绍java将对象存入redis并获得该对象的常用方法。   1.将对象以键值对形式存入redis中的set方法/** * 增加 * @throws Exception * */ public void set(String key,Object value) throws CoreEx...

lixinyao5281的专栏 2万+

SUMO仿真教程(1) ——安装环境的设置(Windows 10系统)

SUMO安装环境的设置 目录一.SUMO下载的官方网址二.下载步骤:三.环境设置:1.打开设置环境变量的界面2.用户(Administrator)变量设置3.系统变量设置四.总述 一.SUMO下载的官方网址 sumo的下载地址: 二.下载步骤: 1.以sumo1.8.0为示例进行演示,点击下载地址; 2.选择Windows64位的安装版本,如下图所示: 3.点击对应版本会跳转到如下图所示的界面,等待几秒后会自动下载(温馨提示:请将下载路径提前设置好): 4.到目标存储路径下查看下载完成的SUMO(本

weixin_50632459的博客 1万+

Linux下开机异常(fsck exited with status code 4)

Linux下开机异常事情是这样的,本来我呢跑着程序听着歌,结果忽然就死机了,我只能强制关机,再次打开系统的时候,就提示这样fsck from util-linux 2.26.2 /dev/sda10 contains a file system with errors, check forced. /dev/sda10: Inodes that were part of a corrupted pr

芳草碧连天 2万+

学会Redis这一篇就够了(1)

Redis是一种键值型的NoSql数据库,这里有两个关键字:其中键值型,是指Redis中存储的数据都是以key、value对的形式存储,而value的形式多种多样,可以是字符串、数值、甚至json: 而NoSql则是相对于传统关系型数据库而言,有很大差异的一种数据库。安装教程Redis是一个key-value的数据库,key一般是String类型,不过value的类型多种多样: Redis为了方便我们学习,将操作不同数据类型的命令也做了分组,在官网( https://redis.io/commands

yiqiu1959的博客 1219

IAR编译相同工程生产hex文件checksum不一致问题

IAR Checksum

xqw19891201的博客 1384

Redis取值存值问题

Redis取值存值问题

weixin_42113716的博客 208

什么是PMOS?什么是NMOS?两者有什么区别?

这个电压差被称为阈值电压(Vth),通常为0.7V至2V(低压NMOS)或4V至10V(功率NMOS)。当Vgs(栅极-源极电压)大于Vth时,沟道中的电子被吸引到栅极下方,形成导电通路,使电流可以从漏极流向源极。NMOS与PMOS的结构类似,都由三大部分组成:栅极(Gate)、源极(Source)和漏极(Drain)。由于NMOS在开启时,电子是主要的载流子,电子的迁移率比空穴高,因此NMOS通常具有更低的导通电阻(Rds(on)),这使其成为高速开关电路中的首选。它的沟道由电子(负载子)传导。

硅农深芯的博客 6446

基于Qt与PaddleOCR的跨平台OCR工具开发实战

本文详细介绍了基于Qt与PaddleOCR开发跨平台OCR工具的实战经验。通过Qt的跨平台特性和PaddleOCR的高效识别能力,开发者可以快速构建支持Windows、Linux和macOS的OCR工具。文章涵盖了环境配置、核心功能实现、性能优化及打包发布等关键环节,特别针对中文识别、内存管理和多线程处理等常见问题提供了解决方案。

weixin_30296405的博客 90

Redis过期键的删除策略

文章目录立即删除惰性删除定时删除Redis使用的策略 Redis中有个设置时间过期的功能,即对存储在 redis 数据库中的值可以设置一个过期时间。作为一个缓存数据库,这是非常实用的。如我们一般项目中的 token 或者一些登录信息,尤其是短信验证码都是有时间限制的,按照传统的数据库处理方式,一般都是自己判断过期,这样无疑会严重影响项目性能。 我们 set key 的时候,都可以给一个 expir...

ThinkWon的博客 1万+

android 9.0Settings休眠时间项(屏幕超时)添加永不休眠功能

在9.0的系统产品开发中,系统中默认息屏时间为1分钟,可以通过在Setting中的息屏时间选项设置对应的息屏时间,但是在开发平板类的产品中,需要实现永不休眠的功能,所以需要在Settings中的息屏时间中添加永不休眠时间这一项来实现这个功能,接下来看息屏时间的相关功能,来添加这个功能

安卓兼职framework和app工程师的博客 2056

Redis过期策略详解

redis过期策略

想着百万年薪努力的小赵 8万+

提示词工程在机器翻译质量提升中的应用

Introduction to Prompt Engineering in Machine Translation Quality Improvement Keywords

AI天才研究院 1151

Autosar MCAL-S32K324 Fee配置-基于EB

Autosar MCAL S32K324 Fee配置详解

赞的博客 1546

Redis过期删除策略

了解redis过期删除策略前,先了解一下三种过期删除策略: 定期删除策略: 概念:在设置键的过期时间的同时,创建一个定时器,让定时器在键的过期时间来临时,立即执行对键的删除操作。(创建定时器删除) 优点: 对内存最友好:通过使用定时器,可以保证过期的键会尽可能快地被删除,释放所占内存 缺点: 对cpu最不友好:在过期键比较多的情况下,删除过期键这一行为可能会占用相当一部分cpu的时间,对服务器的响应时间和吞吐量造成影响。 惰性删除策略: 概念:放任键的过期不管,但是每次从键空间中获取键时,都

weixin_43452467的博客 8090

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

redis过期删除及淘汰机制

4)volatile-lru策略和volatile-random策略适合我们将一个Redis实例既应用于缓存和又应用于持久化存储的时候,然而我们也可以通过使用两个Redis实例来达到相同的效果,值得一提的是将key设置过期时间实际上会消耗更多的内存,因此我们建议使用allkeys-lru策略从而更有效率的使用内存。(2)惰性删除:键过期了就过期了,不管。然后,Redis检查内存使用情况,如果已使用的内存大于maxmemory,则开始根据用户配置的不同淘汰策略来淘汰内存(key),从而换取一定的内存。

cxbtdd的博客 1948

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

redis过期key的删除策略

前言 在使用redis的过程中,不免会产生过期的key,而这些key过期后并不会实时地马上被删除,当这些key数量累积越来越多,就会占用很多内存,因此在redis底层同时使用了三种策略来删除这些key。 第一种策略:被动删除 当读/写一个key时,redis首先会检查这个key是否存在,如果存在且已过期,则直接删除这个key并返回nil给客户端。 第二种策略:定期删除 redis中有一系列的定期任务(serverCron),这些任务每隔一段时间就会运行一次,其中就包含清理过期key的任务,运行频率由配置文件

IT部落格 8133

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

redis的key过期删除策略和内存淘汰机制

Redis的过期键删除策略主要包括三种:定时删除(立即释放内存但消耗CPU)、惰性删除(访问时才检查删除,可能内存泄漏)和定期删除(折中方案,定期扫描删除)。Redis实际采用惰性删除+定期删除的组合策略。内存淘汰机制包括不淘汰数据和针对过期键或全部键的多种淘汰算法(如LRU、LFU、TTL等)。在RDB/AOF持久化和主从复制过程中,过期键有特殊处理机制,如主节点删除后通知从节点同步删除。这些策略平衡了内存使用和性能需求。

weixin_44146398的博客 1383

Redis过期key删除策略

Redis将键的过期时间对时间戳都保存在过期字典中,在删除时通过对比系统当前时间戳和存储的过期时间戳计算得到是否过期。那么如果一个键过期了,Redis是怎么将其删除的呢?

Lin__Mu的博客 1696

Redis——》过期删除策略

Redis——》过期删除策略

小仙~ 891

Redis过期键删除策略

一、关于过期时间 实际应用中存在某些数据一段时间后进行清理,如用户的登录信息,用户登录的时候会保留用户登录状态,当一定时间未登录后,会自动清除登录信息,需要重新登录;短信验证码的时间限制,传统的编码方式为自己判断过期时间,时间到了删除该值,这样无疑会严重影响项目性能,如果有现成的工具可以使用,我只需要给出一个数据和一个过期时间,到时间了你去删除就行,我不用管,这种工具就是Redis,Redis中有个设置时间过期的功能,即对存储在 redis 数据库中的值可以设置一个过期时间 redis中关于键的过期.

lemon_linaa的博客 953

面试官:Redis的key过期之后是立即删除吗

面试官:Redis的key过期之后是立即删除吗

做一个有思想的技术人 4393

redis 永不过期_Redis 过期策略及实现原理

在使用redis时,一般会设置一个过期时间,当然也有不设置过期时间的,也就是永久不过期。当设置了过期时间,redis是如何判断是否过期,以及根据什么策略来进行删除的。设置过期时间expire key time(以秒为单位) 这是最常用的方式setex(String key, int seconds, String value) 字符串独有的方式除了字符串自己独有设置过期时间的方法外,其他...

weixin_39837124的博客 5343

redis删除过期key的算法_redis过期键删除策略

redis服务器实际使用的过期键删除策略有两种:定期删除惰性删除redis 会将每个设置了过期时间的 key 放入到一个独立的字典中,以后会定时遍历这个字典来删除到期的 key。除了定时遍历之外,它还会使用惰性策略来删除过期的 key,所谓惰性策略就是在客户端访问这个 key 的时候,redis 对 key 的过期时间进行检查,如果过期了就立即删除。定时删除是集中处理,惰性删除是零散处理。通过配合...

weixin_39553757的博客 233
上一篇: spriboot项目启动参数初始化
下一篇: Mongo工具类
hit、run
博客等级 码龄10年 163粉丝 157原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值