上一篇
你是不是也遇到过这种情况?🤔 往Redis里存了一些重要数据,结果过几天莫名其妙消失了... 原来是默认设置了过期时间!今天就来教你如何让Redis数据永久有效,再也不怕数据突然蒸发啦!💪
Redis作为一个内存数据库,默认情况下不会自动设置过期时间,但是很多框架、客户端库(比如Spring Data Redis)会默认给数据加上过期时间,这是为了防止内存被无用数据占满。
有些数据我们希望它永远存在,
这时候,就需要手动设置永不过期啦!
Redis的TTL
(Time To Live)决定了数据的存活时间。如果设置为-1
,表示永不过期。
# 设置一个永不过期的键值对 SET my_key "永远记住我" EXPIRE my_key -1 # 或者直接 SET my_key "永远记住我" EX -1 # 检查TTL(返回-1表示永不过期) TTL my_key
如果你用Spring Data Redis,可以这样设置:
redisTemplate.opsForValue().set("config:site_name", "我的网站", -1, TimeUnit.SECONDS);
或者用@RedisHash
时:
@RedisHash(timeToLive = -1) // 整个Hash永不过期 public class SystemConfig { // ... }
如果你希望所有新写入的数据默认永不过期,可以调整Redis配置(但需谨慎!⚠️):
redis.conf
文件 # 默认TTL(单位:秒),-1表示永不过期 default-ttl -1
❗ 注意:这种方式会影响所有数据,可能导致内存爆满,建议仅用于特定场景!
某些框架(如Spring Cache)会默认设置过期时间,需要主动关闭:
spring: cache: redis: time-to-live: -1 # 禁用自动过期
import redis r = redis.Redis() r.set("forever_data", "我会一直存在", ex=None) # ex=None表示永不过期
用TTL
命令查看:
TTL your_key
maxmemory-policy
淘汰数据。 想让Redis数据永久有效?记住这几种方法:
✅ EXPIRE key -1
→ 单条数据永不过期
✅ 修改default-ttl -1
→ 全局默认永不过期(慎用!)
✅ 关闭框架自动过期 → 如Spring Cache设置time-to-live: -1
现在你的Redis数据再也不会偷偷消失了!🎉 如果有用,记得收藏备用哦~ 📌
(本文信息参考自Redis官方文档及主流框架实践,2025-08更新)
本文由 昌琇晶 于2025-08-03发表在【云服务器提供商】,文中图片由(昌琇晶)上传,本平台仅提供信息存储服务;作者观点、意见不代表本站立场,如有侵权,请联系我们删除;若有图片侵权,请您准备原始证明材料和公证书后联系我方删除!
本文链接:https://up.7tqx.com/wenda/529022.html
发表评论