Подтвердить что ты не робот

Memcache аннулирует записи в соответствии с шаблоном?

Есть ли способ сделать недействительными записи в memcache в соответствии с ключом подстановки?

Итак, если у меня есть следующие ключи memcache:

data/1
data/2
data/3

Есть ли способ аннулировать эти ключи с помощью data/*? Было бы очень полезно очистить кучу устаревших данных одним махом.

4b9b3361

Ответ 1

Лучший способ - предоставить ключ для управления версиями при создании ключа memcache. Мы делаем это, предоставляя единую функцию/метод для создания ключа в нашей системе.

$var1 = 123;
$var2 = 456;
$cacheKey = makeKey('monkeyInfo', $var1, $var2, ...);

makeKey() использует информацию в массиве cacheKeyVersions и возвращает:

5:monkeyInfo:123:456

Обратите внимание на "5" в начале. Это происходит из жестко заданного массива версий keyNames = > . Поэтому, если мы хотим сделать недействительным значение кеширования "monkeyInfo" КАЖДОГО в системе, нам просто нужно изменить это число на 6 в массиве. С этого момента один и тот же вызов будет искать

6:monkeyInfo:123:456

Вот пример того, как может выглядеть массив ключевой версии. Вызов 'makeKey()' просто просматривает этот массив, чтобы получить номер версии для любого заданного ключа.

$cacheKeyVersions = array(
    'monkeyInfo'   => 5,
    'zebraInfo'    => 2
);

Вы можете делать всевозможные вещи, чтобы реализация соответствовала вашим потребностям, но это основная суть этого.