前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何使用 PHP 扩展 Memcached 的长连接模式

如何使用 PHP 扩展 Memcached 的长连接模式

作者头像
Denis
发布2023-04-15 09:58:51
6090
发布2023-04-15 09:58:51
举报
文章被收录于专栏:WordPress果酱WordPress果酱

我们知道 Memcache 有个 pconnect() 方法可以实现长连接,其实 Memcached 也可以实现持久化连接。

使用 PHP 扩展 Memcached 的长连接模式

Memcached 的扩展模块提供的构造函数提供一个参数 persistent_id 可选项,手册中这样介绍:

默认情况下,Memcached实例在请求结束后会被销毁。但可以在创建时通过persistent_id为每个实例指定唯一的ID, 在请求间共享实例。所有通过相同的persistent_id值创建的实例共享同一个连接。

这个参数的含义就是说如果传递了一个id给到构造方法,那么就会建立长连接:

代码语言:javascript
复制
<?php
$mc = new Memcached('mc');
$mc->addServers(array(
    array('mc1.example.com',11211),
    array('mc2.example.com',11211),
));
?>

PHP 扩展 Memcached 长连接模式的最佳实践

但需要注意的是当第一次通过建立起 Memcahced 长连接后,切记不要再重复添加 Memcached 的服务端,不然页面没刷新一次就会添加一次,该 persistent_id 下的 Memcached 服务器端就会越来越多,这样就会导致 PHP 的进程异常,与 Memcached 的通信越来越慢。所以使用 PHP Memcached 的长连接模式最佳实践是使用 getServerList() 方法是否已经添加了服务器端,如果没有添加再在进行添加服务器端的操作:

代码语言:javascript
复制
<?php
$mc = new Memcached('mc');
$mc->setOption(Memcached::OPT_LIBKETAMA_COMPATIBLE, true);
if (!count($mc->getServerList())) {
    $mc->addServers(array(
        array('mc1.example.com',11211),
        array('mc2.example.com',11211),
    ));
}
?>

WPJAM Basic 插件已经集成了 Memcached,下载 WPJAM Basic之后,将 wpjam-basic/template/ 目录下的 object-cache.php 文件复制到 wp-content 目录下即可。


本文参与?腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客?前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 使用 PHP 扩展 Memcached 的长连接模式
  • PHP 扩展 Memcached 长连接模式的最佳实践
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com