La mejor forma de hacerlo es proporcionar una clave de versiones al crear su clave Memcache. Hacemos esto al proporcionar una única función/método para crear una clave en nuestro sistema.
$var1 = 123;
$var2 = 456;
$cacheKey = makeKey('monkeyInfo', $var1, $var2, ...);
makeKey()
utiliza la información de la matriz y vuelve cacheKeyVersions:
5:monkeyInfo:123:456
Aviso el '5' al principio. Eso viene de una matriz codificada de keyNames => versiones. Entonces, si queremos invalidar CADA valor de caché 'monkeyInfo' en el sistema, simplemente tenemos que cambiar ese número a 6 en la matriz. A partir de entonces la misma llamada se busca
6:monkeyInfo:123:456
Aquí está un ejemplo de lo que la versión de serie de la clave puede ser similar. La llamada 'makeKey()
' simplemente busca en esta matriz para obtener el número de versión de cualquier clave dada.
$cacheKeyVersions = array(
'monkeyInfo' => 5,
'zebraInfo' => 2
);
Puede hacer todo tipo de cosas para que la implementación satisfaga sus necesidades, pero esa es la esencia básica de la misma.
También tenga en cuenta que su función/método makeKey también podría incluir una versión global que le permita eliminar todo el caché si es necesario. O puede usarlo para vaciar dominios específicos de claves, etc. Depende de usted. – conceptDawg
Manera muy inteligente para lograr la tarea. Gracias por la visión. – Kekoa
@ConceptDawg ¿tiene usted o conoce alguna biblioteca (preferiblemente PHP) que implementaría este algoritmo? – romaninsh