Najlepszym sposobem jest dostarczenie klucza wersjonowania podczas tworzenia memcache klucz. Robimy to poprzez zapewnienie jednej funkcji/metody do tworzenia klucza w naszym systemie.
$var1 = 123;
$var2 = 456;
$cacheKey = makeKey('monkeyInfo', $var1, $var2, ...);
makeKey()
wykorzystuje informacje w tablicy cacheKeyVersions i zwrotów:
5:monkeyInfo:123:456
zauważy '5' na początku. To pochodzi z zakodowanej na sztywno tablicy keyNames => wersji. Więc jeśli chcemy unieważnić KAŻDĄ wartość bufora monkeyInfo w systemie, musimy po prostu zmienić tę liczbę na 6 w tablicy. Od tej pory to samo połączenie będzie szukało
6:monkeyInfo:123:456
Oto przykład tego, jak może wyglądać tablica z kluczową wersją. Wywołanie "makeKey()
" po prostu analizuje tę tablicę, aby uzyskać numer wersji dla danego klucza.
$cacheKeyVersions = array(
'monkeyInfo' => 5,
'zebraInfo' => 2
);
Możesz zrobić wiele rzeczy, aby implementacja była zgodna z Twoimi potrzebami, ale to podstawowy jej sens.
Należy również pamiętać, że funkcja/metoda makeKey może również zawierać wersję globalną, która w razie potrzeby umożliwiłaby opróżnienie całej pamięci podręcznej. Możesz też użyć go do przepłukania określonych domen kluczy itp. To zależy od Ciebie. – conceptDawg
Bardzo sprytny sposób na wykonanie zadania. Dzięki za wgląd. – Kekoa
@ConceptDawg posiadasz lub znasz jakieś biblioteki (najlepiej PHP), które implementowałyby ten algorytm? – romaninsh