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

查缓存时间过期设多长

发布时间: 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拦截掉,

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

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

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

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

热点内容
浪潮存储厚积薄发图片 发布:2025-04-13 22:37:54 浏览:492
sql新建作业 发布:2025-04-13 20:04:15 浏览:767
wp磁贴文件夹 发布:2025-04-13 19:49:06 浏览:495
桃子神社解压码 发布:2025-04-13 19:48:59 浏览:854
ubuntu配置nginxphp 发布:2025-04-13 19:30:02 浏览:822
小米解压乱码 发布:2025-04-13 19:04:57 浏览:769
sql2008技术内幕 发布:2025-04-13 19:04:52 浏览:500
python中单引号和双引号 发布:2025-04-13 18:29:57 浏览:63
屏密码怎么取消 发布:2025-04-13 18:29:56 浏览:363
nc服务器是什么 发布:2025-04-13 18:14:55 浏览:109