57 votes

comment redémarrer/effacer memcache sans redémarrer tout le serveur web ?

/opt/eduserver/eduserver me donne des options :

Utilisation : /opt/eduserver/eduserver {départ|stop|startphp|startwww|startooo|stopphp|stopwww|stopooo|restartphp|restartwww|restartooo|status|restart|reload|force-reload}

où memcache est un module php, il y a memcache.ini en /opt/eduserver/etc/php/conf.d .

Je veux effacer le memcache en ligne de commande. Puis-je le faire sans toucher à aucune autre partie du serveur web ?

4voto

polyethene Points 41

Plutôt que d'attendre les délais d'attente, vous pouvez rendre la commande instantanée en suivant les instructions suivantes flush_all avec le quit commandement :

printf "flush_all\r\nquit\r\n" | nc localhost 11211

Alternativement, si vous n'avez pas nc :

printf "flush_all\r\nquit\r\n" > /dev/tcp/127.0.0.1/11211

Bien que cette méthode ne produise pas de sortie, vous pouvez vérifier qu'elle fonctionne en contrôlant stats pour voir que cmd_flush augmenté.

1voto

Voici une fonction pour purger memcached via PHP, au cas où vous auriez besoin de le rafraîchir sans vous connecter à ssh...

Vous pouvez juste http://yourserver.com/memflush.php

Appelez ce fichier memflush.php

<?php

 $socket = fsockopen("localhost", "11211", $errno, $errstr); 

    if($socket) { 
        echo "Connected. <br /><br />"; 
    }
    else { 
        echo "Connection failed!<br /><br />"; 
    }

    fputs($socket, "flush_all\r\n"); 
    $buffer = ""; 

    fclose($socket); 
?>

0voto

staabm Points 101

Si vous utilisez un socket pour vous connecter à memcached, la syntaxe est la suivante

echo "flush_all" | nc -U ~/memcached.sock

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X