sim. você pode limpar o memcache. tente:
telnet localhost 11211
flush_all
quit
se o memcache não for executado no host local 11211, você terá que ajustá-lo.
/opt/eduserver/eduserver
me dá opções:
Usage: /opt/eduserver/eduserver {start|stop|startphp|startwww|startooo|stopphp|stopwww|stopooo|restartphp|restartwww|restartooo|status|restart|reload|force-reload}
onde o memcache é o módulo php existe memcache.ini
in /opt/eduserver/etc/php/conf.d
.
Eu quero limpar o memcache da linha de comando. Posso fazê-lo de alguma forma sem 'tocar' em qualquer outra parte do servidor web?
Isso também funcionará usando o netcat
echo "flush_all" | nc -q 2 localhost 11211
Depois é só esperar pelo "OK".
memcflush
nas ferramentas memcache é o que você quer:
memcflush --servers=localhost:11211
Altere localhost
para qualquer servidor.
As ferramentas memcache podem não estar instaladas no servidor, se você estiver rodando um sistema operacional baseado no Debian, você pode instalá-lo assim:
sudo apt-get install libmemcached-tools
No Bash você pode usar essa sintaxe sofisticada:
echo flush_all > /dev/tcp/localhost/11211
Caso contrário, use o comando memflush
:
memflush --servers=localhost
(sleep 2; echo flush_all; sleep 2; echo quit; ) | telnet 127.0.0.1 11211
se você quiser executá-lo não interativamente
obrigado a @heiko
Em vez de esperar pelos tempos limite, você pode tornar o comando instantâneo seguindo flush_all
com a% comandoquit
:
printf "flush_all\r\nquit\r\n" | nc localhost 11211
Como alternativa, se você não tiver nc
:
printf "flush_all\r\nquit\r\n" > /dev/tcp/127.0.0.1/11211
Embora esse método não produza uma saída, embora você possa verificar se funciona, verifique stats
para ver que cmd_flush
aumentou.
caso você use um soquete para conectar ao memcached, a sintaxe é
echo "flush_all" | nc -U ~/memcached.sock