Utilisation de Memcached et de la bibliothèque MEMCACHED PHP, est-il un moyen d'obtenir l'heure d'expiration des clés actuelles lorsque vous effectuez un obtenir ? p>
3 Réponses :
Non, ce type de données n'est pas récupérable de la fin du client. Si vous en avez vraiment besoin, rangez-le avec les données dans une matrice sérialisée ou quelque chose. En outre, consultez Cet article juste au cas où vous essayaient de faire quelque chose de similaire. p>
Utilisez cet exemple. Il affiche toutes vos clés de serveur avec leurs quêtes d'expiration, de sorte que vous puissiez obtenir l'heure d'expiration de la clé actuelle.
function getMemcacheKeys() { $memcache = new Memcache; $memcache->connect('192.168.1.18', 11211) or die ("Could not connect to memcache server"); $list = array(); $allSlabs = $memcache->getExtendedStats('slabs'); foreach($allSlabs as $server => $slabs) { foreach($slabs as $slabId => $slabMeta) { if (!is_numeric($slabId)) { continue; } $cdump = $memcache->getExtendedStats('cachedump',(int)$slabId); foreach($cdump AS $keys => $arrVal) { if (!is_array($arrVal)) continue; foreach($arrVal AS $k => $v) { echo $k .' - '.date('H:i d.m.Y',$v[1]).'<br />'; } } } } }
trois notes sur l'extrait de Jason: p>
Il y a une limite de 2 méga dans le message de réponse code> CacheDump code>, vous devez donc vérifier s'il y a toutes les touches stockées dans la réponse, vous pouvez obtenir les touches stockées de nombres réels dans memcached garde les clés expirées jusqu'à ce que quelqu'un leur obtienne; Si vous souhaitez obtenir l'heure d'expiration des touches valides, vous pouvez essayer d'obtenir les valeurs de tous ceux qui sont retournés par dans la version memcached (ancienne) version 1.2.2 La valeur renvoyée dans $ slabmeta ['"utilisé_chunks'] code>. p> li>
CacheDump code>. Exécution de cette procédure Plusieurs fois, vous pouvez supprimer toutes les touches expirées et optimiser la possibilité de lire toutes les touches (voir la limitation au point 1) p> li>
v [1] code> est la clé de création de clé et non la clé expire l'heure, dans cette version il n'y a pas " T un moyen d'obtenir l'heure d'expiration d'une clé p> li>
ol>