gpt4 book ai didi

PHP 内存缓存 : getDelayed & getMulti - how to use?

转载 作者:可可西里 更新时间:2023-11-01 00:27:31 29 4
gpt4 key购买 nike

我最近想了一下如何在 PHP 应用程序中使用 getDelayedgetMulti,以及它们的区别。

阅读有关 getDelayed 的文档:

"The method does not wait for response and returns right away. When you are ready to collect the items, call either Memcached::fetch or Memcached::fetchAll."

很明显,与 getMulti 不同,在 key 可用之前需要调用 fetchAll。但实际的 memcached 调用何时完成?在 fetchAllgetDelayed 运行时?

更新示例:

    $this->memcached->set('int', 99);
$this->memcached->set('string', 'a simple string');
$this->memcached->set('array', array(11, 12));

$this->memcached->getDelayed(array('int'));
$this->memcached->getDelayed(array('string'));
$this->memcached->getDelayed(array('array'));

print("<pre>".print_r( $this->memcached->fetchAll() )."</pre>"); // returns the array element only.

最佳答案

内存缓存 IO 发生在 getDelayedfetchAll 上。

getDelayed 基本上表示“我想要这些 key ,但我现在不需要它们”。

这样做的主要好处是它允许 PHP 在后台以并行操作的方式执行此操作。如果您知道稍后在流程中需要哪些键,您可以让 PHP 去获取它们,当您确实需要它们时调用 fetchAll

如果 PHP 在执行其他操作时设法获取了数据,则当您调用 fetchAll 时,无需等待。如果还没有,则该过程会暂停,同时 Memcached 的数据传输完成。

一个非常愚蠢的例子是如果你有两件事要做:

  1. 调整图片大小用了 3 秒。
  2. 用了 2 秒从内存缓存中获取 100 个值。

如果您只是调整图像大小然后使用 getMulti,则需要 5 秒。

如果您为 key 调用 getDelayed,然后调整图像大小,然后使用 fetchAll,整个过程只需 3 秒。

关于PHP 内存缓存 : getDelayed & getMulti - how to use?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2929054/

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