Il modo migliore è quello di fornire una chiave di controllo delle versioni quando si crea la chiave memcache. Lo facciamo fornendo una singola funzione/metodo per la creazione di una chiave sul nostro sistema.
$var1 = 123;
$var2 = 456;
$cacheKey = makeKey('monkeyInfo', $var1, $var2, ...);
makeKey()
utilizza le informazioni nella matrice cacheKeyVersions e ritorni:
5:monkeyInfo:123:456
Avviso il '5' all'inizio. Questo deriva da un array hard-coded di keyNames => versioni. Quindi, se vogliamo invalidare OGNI valore di cache 'monkeyInfo' nel sistema, dobbiamo semplicemente cambiare quel numero a 6 nell'array. Da allora in poi la stessa chiamata sarà alla ricerca di
6:monkeyInfo:123:456
Ecco un esempio di ciò che la chiave dell'array versione potrebbe essere simile. La chiamata 'makeKey()
' controlla semplicemente in questo array per ottenere il numero di versione per una determinata chiave.
$cacheKeyVersions = array(
'monkeyInfo' => 5,
'zebraInfo' => 2
);
Si potrebbe fare un sacco di cose per rendere l'attuazione corrispondono ai suoi bisogni, ma questo è il senso di base di esso.
Si noti inoltre che la funzione/metodo makeKey potrebbe anche includere una versione globale che consentirebbe di svuotare l'intera cache se necessario. Oppure puoi usarlo per svuotare specifici domini di chiavi, ecc. Dipende da te. – conceptDawg
Modo molto intelligente per eseguire l'operazione. Grazie per l'intuizione. – Kekoa
@ConceptDawg hai o conosci qualche libreria (preferibilmente PHP) che implementerebbe questo algoritmo? – romaninsh