2010-09-02 5 views
5

Pourquoi memcached impose-t-il une limite de 30 jours à la durée de vie des entrées de cache?élimination de la limite de 30 jours de memcached

Dans mon système, je règle toujours la durée de vie à 30 jours, car c'est la valeur maximale autorisée. Le définir à une valeur beaucoup plus grande que 30 jours serait idéal pour mon application.

Existe-t-il un moyen de changer la valeur "30 jours" en quelque chose d'autre? Je considère télécharger la source memcached et la recompiler pour mon propre usage. Je changerais le "30" en "300" ou peut-être me débarrasserais complètement de ce contrôle. Si je devais faire ceci, est-ce que je changerais quelque chose qui causerait un mauvais fonctionnement de memcached ou fonctionnerait mal? Mon attente serait que les éléments seraient autorisés à rester dans le cache plus longtemps, et ils seraient retirés du cache lorsque le cache serait plein.

+1

Pourquoi la limite de 30 jours est-elle un problème? Est-ce que cela cause des problèmes? – Oded

Répondre

8

30 jours est la durée maximale pour laquelle vous pouvez spécifier une expiration, mais si vous envisagez d'éliminer complètement la vérification de l'expiration, ne serait-il pas plus simple de définir l'expiration à 0? Cela devrait signifier que les données sont stockées jusqu'à ce que le cache soit plein et qu'il soit supprimé pour permettre l'insertion d'éléments plus récents.

De l'PHP Memcache docs:

Paramètre expire est temps d'expiration en secondes. Si c'est 0, l'élément n'expire jamais (mais le serveur memcached ne garantit pas que cet élément sera stocké tout le temps, il pourrait être supprimé du cache pour faire place à d'autres éléments).
10

30 jours est la limite à laquelle nous considérons l'heure que vous avez spécifié comme TTL à partir de maintenant.

Si vous voulez plus de 30 jours, c'est bien, il suffit d'utiliser un temps absolu (time() + whatever).

Si vous ne voulez pas d'expiration basée sur le temps, comme le dit ConroyP, utilisez simplement 0.

+0

pouvez-vous ajouter plus de détails? considérez ma question ici: http: //magento.stackexchange.com/questions/5925/memcached-why-data-is-not-stored/5961? Noredirect = 1 # 5961 – WonderLand

+0

Ceci l'explique - merci! Je viens juste de lire la source doctrine/cache et je n'ai pas pu comprendre pourquoi ils vérifiaient la durée de cette façon, si heureux de trouver une explication. – puppyFlo

Questions connexes