Когда и как вы обновите измененный элемент в Memcached? - PullRequest
1 голос
/ 22 ноября 2010

Я впервые использую PHP PECL / Memcached и не могу понять, когда и как мне следует обновлять измененные элементы в Memcached.

Я пытался использовать и Memcached::add, и Memcached::set, и ни один из них не дал ожидаемых результатов.

Memcached::set автоматически заменяет значение

$memcached->set('key', 'value', time() + 300);
$memcached->set('key', 'value2', time() + 300);
var_dump($memcached->get('key')); // Outputs "value2"

и Memcached::add не заменят значение, если оно уже установлено в Memcached

$memcached->add('key', 'value');
$memcached->add('key', 'value2';
var_dump($memcached->get('key')); // Outputs "value"

Так какова обычная практика обновления значений в Memcached?

1 Ответ

2 голосов
/ 22 ноября 2010

Вы вызываете memcached :: get.

Если возвращаемое значение не равно false, ваше значение было в кэше, и теперь у вас есть его и вы можете использовать его.

Если возвращаемое значение равно false, его нет в кэше (никогда не было или срок действия истек). Вычислите значение, сохраните его в memcache, затем продолжите работу с вашей программой.

Цель кэша - избавить вас от выполнения ресурсоемкой задачи, выполнив ее один раз, затем кешируя некоторое время и повторно используя значение в будущих запросах.

...