Due tra le piattaforme di caching più diffuse in ambito web sono Memcache e Xcache. Offrono prestazioni di alto livello e sono pressoché indispensabili per il buon funzionamento di un server web che ospiti un numero elevato di siti. Spesso però la loro presenza interferisce pesantemente con le attività di aggiornamento del codice e ostacola il lavoro dei dev che vogliono verificare in tempo (quasi) reale gli effetti delle proprio modifiche.
Ecco quindi le istruzioni su come svuotare la cache da linea di comando per entrambe le piattaforme.
Memcache
E’ sufficiente inviare al daemon, normalmente in ascolto sulla porta 11211, il comando flush_all e lo si può fare fondamentalmente in due modi: usando netcat o interagendo con il daemon mediante telnet.
Usando netcat si può adottare la sintassi che si preferisce:
$ echo 'flush_all' | nc localhost 11211
oppure
$ echo 'flush_all' | netcat localhost 11211
oppure
$ nc localhost 11211<<<"flush_all"
Usando telnet è necessario interagire con il daemon:
$ telnet localhost 11211
Una volta ricevuto il prompt, lanciate direttamente il comando flush_all e premete invio:
Trying ::1...
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
flush_all
OK
quit
Connection closed by foreign host.
fonte: https://goo.gl/3vxv4K
Xcache
Con Xcache le cose si fanno un pochino più laboriose, perché è necessario definire le credenziali di accesso alle API del daemon, impostazioni che su Debian GNU/Linux si trovano nel file /etc/php5/conf.d/20-xcache.ini e che vanno settate come segue:
[xcache.admin]
xcache.admin.enable_auth = Off
; Configure this to use admin pages
xcache.admin.user = "admin"
xcache.admin.pass = "5f4dcc3b5aa765d61d8327deb882cf99"
Una volta presa questa precauzione, senza la quale è impossibile effettuare il flush, si può lanciare xcache_clear_cache direttamente da linea di comando:
php -r "xcache_clear_cache();"
fonti: https://goo.gl/cu0JGV, https://goo.gl/GMHJgk