首页 » Web前端 » memcached和php问题技巧_一文详解 WordPress 中运用 Memcached 的常见问题

memcached和php问题技巧_一文详解 WordPress 中运用 Memcached 的常见问题

访客 2024-12-15 0

扫一扫用手机浏览

文章目录 [+]

1. 首先做事器须要安装 Memcached 做事端,然后 PHP 须要安装上 Memcached 的扩展,

2. WPJAM Basic 插件已经集成 Memcached 的功能,将 wpjam-basic/template/ 目录下的 object-cache.php 文件复制到 wp-content 目录下,把稳不是 wp-content/plugins/。

memcached和php问题技巧_一文详解 WordPress 中运用 Memcached 的常见问题

3. WordPress 会自动检讨在 wp-content 目录下是否有 object-cache.php 文件,如果有,直接调用它作为 WordPress 工具缓存机制。

memcached和php问题技巧_一文详解 WordPress 中运用 Memcached 的常见问题
(图片来自网络侵删)
利用 Memcached 的哪个 PHP 扩展?

Memcached 有 两个 PHP 扩展:“PHP Memcache 扩展” 和 “PHP Memcached 扩展”,两者仅仅相差一个字母 D,这是我们搞混的地方。

PHP Memcache 扩展用 PHP 实现的,支持面向工具和面向过程两种接口,2004年就实现了,是老客户端,而且功能少,属性也可设置的少。

PHP Memcached 扩展基于 libmemcached 开拓的,利用 libmemcached 库供应的 API 与 Memcached 做事进行交互,只支持面向工具的接口,2009年才实现,Memcached 扩展功能更加完善,支持的函数更多,比如支持批量操作,现在一样平常建议利用 Memcached 扩展。

WPJAM Basic 的 object-cache.php 是基于 PHP 的 Memcached 扩展实现的,以是一定要利用 PHP Memcached 扩展,不要搞错了,我们可以同样在「系统信息」的 PHP 扩展中看到:

如何判断 Memcached 安装成功?

如果成功安装,WPJAM Basic 会自动在 WordPress 后台「WPJAM」菜单下的的「系统信息」 子菜单中看到 Memcached 的信息:

再次重复一下,只有这个界面显斧正常才是安装成功,如果显示任何非常,那便是可能 Memcached 做事端或者其 PHP 扩展安装错了,不是程序出错,不用来给我报错,找你的做事器管理员帮你检讨 Memcached 安装是否缺点。

同台做事器多个站点如何同时利用?

在同台做事器上的多个 WordPress 站点如果同时启用了 Memcached,可能会涌现这样的问题:访问一个网站会跳转到其余一个网站,数据会串了。

这是怎么回事呢?这是由于 object-cache.php 是利用 WordPress 的表前缀($table_prefix)来区分不同站点在内存中的缓存的。

如果你在同个做事器多个 WordPress 网站的表前缀都相同,都是默认的 wp_,那么 object-cache.php 就无法区分是哪个站点了。

有两个办理方法:

1. 修正表前缀,让不同的 WordPress 博客利用不同的表前缀,我开拓了一个 WordPress 数据库表前缀修正器,一键天生修正数据库表前缀所需的SQL,让你在 WordPress 修正表前缀之后能够更加方便全站修正。

2. 如果修正表前缀未便利,我还供应了 WP_CACHE_KEY_SALT 这个缓存 key 盐值的常量,你只须要在不同站点的 wp-config.php 文件定义不同的 WP_CACHE_KEY_SALT 值即可。

比如两个站点分别定义为:

define('WP_CACHE_KEY_SALT', 'site1');

define('WP_CACHE_KEY_SALT', 'site2');

如果设置了还弗成,可能你的 object-cache.php 不是最新版,那就下载一下最新版的 WPJAM Basic 插件,然后将 wpjam-basic/template/ 目录下的 object-cache.php 文件复制到 wp-content 目录下。

缓存过期韶光如何设置超过30天?

根据 WordPress 的工具缓存供应的缓存函数的用法,利用 wp_cache_set 函数把缓存过期韶光设置为 60×60×24×365 便是一年,然后写入缓存,结果返回 true,解释已经精确地存储到 Memcached 中。

但是在利用函数 wp_cache_get 去获取的时候,总是返回 null,末了查手册才创造,Memcahced 设置过期韶光要把稳分外情形:

缓存过期韶光是一个 Unix 韶光戳,也可以是一个从现在算起的以秒为单位的数字。
那么怎么判断是 Unix 韶光戳还是一个从现在算起的以秒为单位的数字呢?小于 60×60×24×30(30天韶光的秒数),就算是从现在算起的以秒为单位的数字。
如果大于 60×60×24×30,则会将其作为一个真实的Unix韶光戳来处理而不是自当前韶光的偏移。
如果缓存过期韶光被设置为0(默认),此元素永不过期(但是可能会由于 Memcached 分配的内存用完,为了给其他新的元素分配空间而被删除)。

以是如果真的要设置缓存过期韶光为一年后,其值该当设置为: time()+60×60×24×365。

而不是 60×60×24×365,这是北京韶光 1971-01-01 08:00:00 的韶光戳,一个过去的韶光,获取的时候已经由期了,返回自然是 null,不存在了。

相关文章

74,介绍数字背后的历史与战略布局

在历史的长河中,数字往往承载着丰富的象征意义和战略价值。今天,我们就来探讨一个特殊的数字——74,它不仅是一个普通的阿拉伯数字,更...

Web前端 2024-12-17 阅读0 评论0

BO大数据,引领未来商业发展的智慧引擎

随着互联网技术的飞速发展,大数据已成为当今时代最热门的词汇之一。BO大数据,作为我国大数据领域的重要力量,正引领着未来商业发展的潮...

Web前端 2024-12-17 阅读0 评论0

58大数据解读,介绍中国房地产市场新趋势

近年来,随着互联网技术的飞速发展,大数据在各个行业中的应用越来越广泛。在房地产市场,58大数据凭借其强大的数据处理和分析能力,为行...

Web前端 2024-12-17 阅读0 评论0

CD大数据,介绍数字时代的数据力量

随着互联网的飞速发展,大数据已经成为当今世界最热门的词汇之一。在这个信息爆炸的时代,数据已经成为了一种新的资源,而CD大数据则在这...

Web前端 2024-12-17 阅读0 评论0