Invalidar páginas de categorías en caché (Página 1, página 2, etc.) cuando se añade nuevo puesto?

StackOverflow https://stackoverflow.com/questions/3711525

Pregunta

Imaginemos que tenemos blog con categoría A. Categoría A está teniendo actualmente puestos en 1000 100 páginas. Todas las páginas se almacenan en archivos (por ejemplo, almacenado en caché por el motor de plantillas Smarty). Estoy agregando entrada y quieres que se muestre en la primera página de inmediato. Por lo tanto, tengo que borrar la memoria caché o invalida para todas las 100 páginas de la categoría A.

Borrar caché páginas no es una buena idea, ya que podemos tener demasiado archivos (por ejemplo, miles de páginas). Creo que invalida la memoria caché y la regeneración de la página de solicitud es mucho manera más eficiente.

Mi único pensamiento es añadir a number of posts in category identificador de cache. Así, en primer lugar debemos obtener el número de puestos de categoría (por ejemplo, de Memcache) y luego comprobar si en caché versión válida por este número.

Todo se ve bien y simple. Pero imaginemos situación en la que estoy añadiendo nuevo puesto y luego después de 1 minuto estoy quitando otro post (mayores). Número de puestos aún 1000 y algunas páginas de la categoría permanecerá edad (si es que no fueron vistos durante 1 minuto).

¿Cuál es la solución?

PS:. Lo siento por mi Inglés, pero creo que mi pregunta será claro a partir de las personas que ya se han enfrentado a problemas tales

Gracias

¿Fue útil?

Solución

El número de mensajes no es una buena solución, porque cuando se edita un post que se quiere refrescar la memoria caché también.

Un par de estrategias que puedo pensar en:

  • Uso momento en que se realizó un cambio como referencia.

Cuando se añade nuevo puesto (eliminado, editado) - tienda de fecha y hora actual en una categoría, le llaman cache_threshold. Cuando se solicita una página - comprobar cuando se almacena en caché esta página. Si es mayor que nuestros umbral -. Necesidades de página para regenerar

  • Cambiar al objeto de almacenamiento en caché en lugar de caché de páginas.

En lugar de almacenamiento en caché de páginas enteras, se puede almacenar en caché cada entrada individual. Si se añade nuevo puesto (eliminado, editado) que acaba de volver a generar de inmediato su caché, ya que no es mucho tiempo. Con el fin de mostrar la página sólo se necesita para tomar una cantidad requerida de mensajes almacenados en caché y mostrarlos.

Esta solución requiere más trabajo pero es más flexible y eficaz.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top