redis 如何设置过期时间

ppylox
·4/15/2022·1 阅读
AI 摘要模型根据正文自动生成,仅供参考

文章介绍了在Redis中设置数据过期时间的方法。作者发现网站缓存数据过多,因爬虫访问导致大量无用数据堆积,提出应定时清除。通过Spring的RedisTemplate示例,先set写入key,再调用expire指定过期时间与单位(如3天),到期自动清除,从而减少数据库压力。作者此前还开发了手动清除全部Redis数据的功能。

之前笔者的网站就用上了redis,但是并未注意给数据添加过期时间的,时间一长通过vscode的redis插件看到缓存的数据有两万多条,很多时候都是爬虫访问导致的,因为目前的缓存策略是如果访问某篇文章的时候优先从redis中取,如果redis中不存在,再从数据库中查询,如果存在就直接从redis中拿,从效果来看,提升速度明显,基本在2s内页面就能打开,当然也许是笔者的要求太低了。

如果把所有的数据都存入redis其实是一种浪费,因为大部分数据可能都不会被再次访问,那么定时清除多余的数据是有必要的,那么本身redis是支持设置过期时间的,操作如下:

String id = "dsiab"\n\nredisTemplate.opsForValue().set(id,“www.dsiab.com”);\nredisTemplate.expire(id,3, TimeUnit.DAYS);


上面的操作意味着key为disab的数据会被缓存3天,3天后会被清除,这样一来数据就能自动被清除,能极大地减少数据库的压力。之前由于不清楚这个功能,还给网站开发了一个清除所有redis数据的功能,不过好像也不算多余。

相关文章