gpt4 book ai didi

php - PECL/内存缓存和 PECL/内存缓存

转载 作者:行者123 更新时间:2023-11-29 05:31:55 27 4
gpt4 key购买 nike

我在我的 PHP 设置中安装了两个 PECL,当我执行 php -V 时,我可以看到它们都在运行。在我的 /etc/php5/conf.d/ 文件夹中,这两个 PECL 都已启用。当我检查 phpinfo 时,我才知道使用了 PECL/Memcache,因为它具有分配的端口号 11211。两个 PECL 在 .ini 文件中都有自己的配置,但只使用了一个。我知道我们不能同时使用两者,但我想一次测试两个 PECL。我的问题是如何在不删除任何人的情况下通过更改设置来测试这些 PECL。我想测试 Memcache 并禁用它并在决定使用什么之前测试 Memcached。有什么方法可以在不删除的情况下完成它?

目前我正在使用 PhpMemcachedAdmin检查 Memcached,它仍处于测试阶段和错误。如果有人可以向我推荐一些其他更好的工具,那将非常有帮助。

最佳答案

您可以同时激活两个扩展。 PECL MemcachePECL Memcached 都是连接到 Memcached 服务器 的 PHP 客户端

关于优缺点

如前所述,Memcached 构建于 libmemcached 之上它由 memcached 服务器团队维护。人们说它更好,但我当时无法验证这一点。

PECL 内存缓存仍然具有更好的 PHP session 支持。

我找到了(有点旧,但大部分仍然有效)比较图表 here

编辑

PHP 正在使用任一扩展连接到 Memcached 服务器。下面是一些使用示例

PHP 中的 PECL Memcached 使用示例

PECL Memcached class reference

// create PECL memcached Object
$m = new Memcached();

// add a server, connection is established lazily as far as I know
$m->addServer( 'localhost', 11211 );

// set values, those are written into your server's memory using the memcached server
$m->set( 'integer', 1 );
$m->set( 'intIncrement', 1 );
$m->set( 'intDecrement', 1 );
$m->set( 'string', 'I am a string' );
$m->set( 'array', array( 'a', 'b', 'c' ) );

// increment
$m->increment( 'intIncrement' );

// decrement
$m->decrement( 'intDecrement' );

// get values again
var_dump ( $m->get( 'integer' ) );
var_dump ( $m->get( 'intIncrement' ) );
var_dump ( $m->get( 'intDecrement' ) );
var_dump ( $m->get( 'string' ) );
var_dump ( $m->get( 'array' ) );

// delete values
$m->delete( 'integer' );
$m->delete( 'intIncrement' );
$m->delete( 'intDecrement' );
$m->delete( 'string' );
$m->delete( 'array' );

// close connection
$m->close();

PHP 中的 PECL Memcache 使用示例

PECL Memcache class reference

这可以在同一个 PHP 脚本中!

// create PECL memcache object
$m = new Memcache;

// connect to the memcached server
$m->connect('localhost', 11211);

// set values
$m->set( 'integer', 1 );
$m->set( 'intIncrement', 1 );
$m->set( 'intDecrement', 1 );
$m->set( 'string', 'I am a string' );
$m->set( 'array', array( 'a', 'b', 'c' ) );

// increment
$m->increment( 'intIncrement' );

// decrement
$m->decrement( 'intDecrement' );

// get values again
var_dump ( $m->get( 'integer' ) );
var_dump ( $m->get( 'intIncrement' ) );
var_dump ( $m->get( 'intDecrement' ) );
var_dump ( $m->get( 'string' ) );
var_dump ( $m->get( 'array' ) );

// delete values
$m->delete( 'integer' );
$m->delete( 'intIncrement' );
$m->delete( 'intDecrement' );
$m->delete( 'string' );
$m->delete( 'array' );

// close connection
$m->close();

您还可以将对象存储到 memcached 中,查看这篇关于 object serialization 的文章和 magic class methods PHP 中的 __sleep__wakeup()

如您所见,PECL Memcached 和 Memcache 这两个客户端的基本用法非常相同。

关于php - PECL/内存缓存和 PECL/内存缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13974818/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com