注意了,使用 Memcahced 的时候,不要把缓存过期时间设置超过30天
缓存 使用 设置 时间 过期 30 注意 时候
2023-06-13 09:18:31 时间
最近做项目的时候,使用 Memcahced 进行缓存的时候,有个数据因为使用比较少,就想缓存的时间久一点,把缓存的时间设置为一年。
无法获取 Memcached 缓存数据
根据 WordPress 的对象缓存提供的缓存函数的用法,使用 wp_cache_set
函数把缓存过期时间设置为 60×60×24×365
写入缓存,结果返回 true,说明已经正确地存储到 Memcached 中。
但是在使用函数 wp_cache_get
并且配合相同 key 和 group 的参数去获取的时候,总是返回 null,最后查手册才发现,Memcahced 过期时间不能超过 30 天。
Memcached 缓存过期时间详解
PHP 手册中关于 Memcached 缓存过期时间的详细解释:
- 缓存过期时间是一个 Unix 时间戳,也可以是一个从现在算起的以秒为单位的数字。
- 那么怎么判断是 Unix 时间戳还是一个从现在算起的以秒为单位的数字呢?
- 小于
60×60×24×30
(30天时间的秒数),就算是从现在算起的以秒为单位的数字。 - 如果大于
60×60×24×30
,则会将其作为一个真实的Unix时间戳来处理而不是自当前时间的偏移。 - 如果缓存过期时间被设置为0(默认),此元素永不过期(但是可能会因为 Memcached 分配的内存用完,为了给其他新的元素分配空间而被删除)。
Memcached 缓存过期时间超过 30 天的用法
所以如果真的要设置缓存过期时间为一年后,其值应该设置为: time()+60×60×24×365
。
而不是 60×60×24×365
,这是北京时间 1971-01-01 08:00:00 的时间戳,一个过去的时间,获取的时候已经过期了,返回自然是 null,不存在了。
一定要记住了。
WPJAM Basic 插件已经集成了 Memcached,下载 WPJAM Basic 之后,将 wpjam-basic/template/
目录下的 object-cache.php
文件复制到 wp-content
目录下即可。
相关文章
- 使用缓存保护MySQL
- 增强系统效率:Redis缓存的优雅实践(redis缓存使用)
- Java下使用Redis进行高效缓存优化(Redis缓存java)
- 缓存Java使用Redis过期缓存实现快速数据访问(redisjava过期)
- 提升效率Oracle内存缓存区的使用(oracle 内存缓存区)
- 正确使用Redis 搭建更高效的缓存系统(正确使用redis)
- 使用Redis缓存提高商品浏览体验(用redis缓存商品数据)
- 本地缓存与Redis的无缝同步(本地缓存同步redis)
- 使用SSM框架实现Redis缓存功能(ssm使用redis缓存)
- 优化博客网站性能使用本地Redis缓存(博客redis本地缓存)
- 使用Redis实现网页分页缓存(分页缓存redis使用)
- 储设置过期时间Redis如何设置缓存有效期(如何给redis存)
- 查看Redis缓存有效的实现方式(怎么查redis缓存)
- 的应用性能使用Redis缓存改善应用性能,让应用变得更快(做了redis缓存 更慢)
- 为何使用Redis揭秘缓存技术的真正魅力(你们为什么使用redis)
- 深入了解Redis,构建更快的缓存体系(对缓存技术 redis)
- 缓存使用redis缓存极大提升商品列表数据访问性能(商品列表数据redis)
- redis中设置过期监控,有效提升缓存使用(redis过期监控)
- 的缓存问题使用Redis解决热点Key缓存拥堵问题(redis解决热点key)
- 实现Redis缓存更好的置顶效果(redis置顶功能)
- 使用Redis缓存优化SQL语句性能(redis缓存的语句)
- 红色钥匙揭示Redis缓存中的锁机制(redis缓存涉及的锁)
- 使用JetCache的异步API访问Redis缓存
- Android中的Bitmap缓存池使用详解