当前位置: 首页 > news >正文

Redis过期机制

const (
    cacheDuration = 24 * time.Hour
)

func SetToCache(rdb *redis.Client, key string, data []byte) error {
    return rdb.Set(rdb.Context(), key, data, cacheDuration).Err()
}

以上函数中的rdb.Set(rdb.Context(), key, data, cacheDuration).Err()中的 cacheDuration一旦被设置,是不是就意味着,当数据在内存中存储超过这个时间,就会被删除,redis缓存中将不在有该数据了?

是的,在 Redis 中,cacheDuration 设置为 24 * time.Hour 表示缓存数据的过期时间为 24 小时。具体解释如下:

代码中的 cacheDuration

const (
    cacheDuration = 24 * time.Hour
)
  • 这里 cacheDuration 被定义为一个常量,表示 24 小时。
  • time.Hour 是 Go 语言中一个用于表示 1 小时时间长度的常量。
  • 因此,24 * time.Hour 等于 24 小时。

Redis 缓存过期时间

rdb.Set(rdb.Context(), key, data, cacheDuration).Err()
  • 这行代码中的 cacheDuration 作为 Redis 的过期时间参数。
  • 当调用 SET 命令时,Redis 会将当前时间加上 cacheDuration 作为键的过期时间。
  • 如果超过这个过期时间,Redis 会认为该键已经过期,并在下次访问时删除它。

Redis 缓存数据有效期

  • 当 cacheDuration 设置为 24*time.Hour 后,Redis 会确保数据在内存中的有效期为 24 小时。
  • 超过 24 小时后,Redis 会在后台清理过期数据。
  • 具体来说:
    • Redis 会定期检查和删除过期的键。
    • 一旦识别出键已过期,Redis 会自动删除该键。

注意事项

  • Redis 的缓存清除机制:
    • Redis 不会立即删除过期的键,而是在访问时或定期清理时删除。
    • 如果 Redis 的内存使用接近限制,它可能会更积极地删除过期的键。
  • 数据仍然可能存在于 Redis 中:
    • 在 24 小时后,数据会在 Redis 中被标记为过期,但直到 Redis 清理或访问时才会被删除。
    • 总之,cacheDuration 设置为 24*time.Hour 后,Redis 会在 24 小时后自动删除缓存数据,确保数据的生命周期不超过 24 小时。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.dtcms.com/a/22088.html

相关文章:

  • 【ISO 14229-1:2023 UDS诊断全量测试用例清单系列:第九节】
  • 用deepseek学大模型03-数学基础 概率论 最大似然估计(MLE)最大后验估计(MAP)
  • 1-13 tortoiseGit忽略文件与文件夹
  • SubGraphRAG:结合LLM与知识图谱子图的推理增强框架,通过多层感知机和三元组打分优化子图检索
  • 基于单片机的日程管理系统设计
  • Ubuntu 连接 air pods
  • Unity3D仿星露谷物语开发29之创建农舍小屋场景
  • 怎么在智能合约中植入deepseek
  • 如何使用Pytest参数化测试大规模生成单元测试用例
  • 【动态路由】系统Web URL资源整合系列(后端技术实现)【apisix实现】
  • 【设计模式】【结构型模式】桥接模式(Bridge)
  • 案例-04.部门管理-删除
  • vueDevtools和文档整合(前端常用工具/插件)
  • Code::Blocks 创建 C 项目 二
  • 有关Java中的异常和异常处理
  • 图神经网络怎么和LLM结合
  • Docker 入门与实战:从安装到容器管理的完整指南
  • nlp|微调大语言模型初探索(1),LLaMA-Factory
  • 用deepseek学大模型05-线性回归
  • UnityRecorder导出带透明通道的视频和图片
  • Java 版本 24 性能更新:更快、更智能
  • 高效构建与配置高可用负载均衡集群:从理论到实践的全面实施
  • WordPress 角标插件:20 种渐变色彩搭配,打造专属菜单标识
  • LeetCode每日精进:142.环形链表II
  • 应用分层、三层架构和MVC架构
  • 容器运行常见数据库
  • 使用 IntersectionObserver 实现懒加载和无限滚动
  • 静态页面在安卓端可以正常显示,但是在ios打开这个页面就需要刷新才能显示全图片
  • Dify+Ollama+DeepSeek部署本地大模型+知识库搭建
  • CSS flex布局 列表单个元素点击 本行下插入详情独占一行