3 votes

Expiration de memcache via regex

J'utilise memcache dans mon application rails. Je veux dire

expirez toutes les entrées dont les clés ressemblent à "foo-123-*".

Où * est une chaîne quelconque. Bien sûr, aucune distribution memcache ne supporte cela directement (n'est-ce pas ?) parce que memcache est construit pour être simple et rapide et n'a donc pas d'index.

Il existe quelques projets qui répondent en quelque sorte à ce problème, en conservant une liste locale de clés :

Mais en gardant la liste en mémoire, cette liste peut être désynchronisée entre les instances de l'application, ce qui n'est pas fiable.

Ce problème a-t-il été résolu d'une autre manière ? Ai-je oublié une solution courante ?

0voto

tanaydin Points 514

Comme vous l'avez dit, il n'est pas possible d'interroger memcached comme vous le souhaitez... mais voici un exemple php que j'ai trouvé et qui renvoie une liste de clés

http://snipt.org/xtP

il envoie

  • "éléments de statistiques"

puis itère les éléments retournés et envoie

  • "stats cachedump 42 100"

42 est le numéro de l'article, 100 est le nombre d'articles à renvoyer

vous pouvez alors parcourir les clés retournées et supprimer celles dont vous n'avez plus besoin.

(mais il s'agit d'une solution de contournement peu glorieuse de toute façon...)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X