当前位置:首页 » 文件管理 » 查缓存时间过期设多长

查缓存时间过期设多长

发布时间: 2025-04-07 01:57:38

Ⅰ Redis缓存过期机制

一、针对与设置了过期时间的key值

    1.(主动)定期删除:定时随机的检查过期的key,如果过期则清理删除

        redis.conf(每秒检查的次数1-500)配置:   hz 10

    2.(被动)惰性删除:当客户端请求到一个已经过期的key时,redis会检查是否过期并删除

所以,虽然key过期了,但是没被清理的话,还是会占内存的。

二、内存淘汰管理机制Memory Management

    当内存占满之后,redis提供缓存淘汰机制。

    redis.conf: maxmemory <bytes>

* noeviction:旧缓存永不过期,新缓存设置不了,返回错误 

* allkeys-lru:清除最少用的旧缓存,然后保存新的缓存(推荐使用)

* allkeys-random:在所有的缓存中随机删除(不推荐)

* volatile-lru:在那些设置了expire过期时间的缓存中,清除最少用的旧缓存,然后保存新的缓存

* volatile-random:在那些设置了expire过期时间的缓存中,随机删除缓存

* volatile-ttl:在那些设置了expire过期时间的缓存中,删除即将过期的

Ⅱ 缓存击穿互斥锁 设置锁的失效时间

  • 设置锁的失效时间是自己设置的,它的过期时间会很短,最长不超过五分钟

  • 缓存穿透是指查询一个一定不存在的数据

  • 由于缓存是不命中时被动写的,

  • 并且出于容错考虑,如果从存储层查不到数据则不写入缓存,

  • 这将导致这个不存在的数据每次请求都要到存储层去查询,失去了缓存的意义。

  • 在流量大时,可能DB就挂掉了,

  • 要是有人利用不存在的key频繁攻击我们的应用,这就是漏洞。

  • 最常见的则是采用布隆过滤器

  • 将所有可能存在的数据哈希到一个足够大的bitmap中,

  • 一个一定不存在的数据会被 这个bitmap拦截掉,

  • 从而避免了对底层存储系统的查询压力。

  • 另外也有一个更为简单粗暴的方法

  • 如果一个查询返回的数据为空(不管是数 据不存在,还是系统故障),

  • 我们仍然把这个空结果进行缓存,但它的过期时间会很短,最长不超过五分钟

热点内容
java返回this 发布:2025-10-20 08:28:16 浏览:593
制作脚本网站 发布:2025-10-20 08:17:34 浏览:888
python中的init方法 发布:2025-10-20 08:17:33 浏览:582
图案密码什么意思 发布:2025-10-20 08:16:56 浏览:765
怎么清理微信视频缓存 发布:2025-10-20 08:12:37 浏览:684
c语言编译器怎么看执行过程 发布:2025-10-20 08:00:32 浏览:1013
邮箱如何填写发信服务器 发布:2025-10-20 07:45:27 浏览:255
shell脚本入门案例 发布:2025-10-20 07:44:45 浏览:114
怎么上传照片浏览上传 发布:2025-10-20 07:44:03 浏览:806
python股票数据获取 发布:2025-10-20 07:39:44 浏览:713