전체 웹 서버를 다시 시작하지 않고 memcache를 다시 시작하거나 지우는 방법은 무엇입니까? | startwww

/opt/eduserver/eduserver 나에게 옵션을 제공합니다 :

사용법 : / opt / eduserver / eduserver {start | stop | startphp | startwww | startooo | stopphp | stopwww | stopooo | restartphp | restartwww | restartooo | status | restart | reload | force-reload}

여기서 memcache는 PHP 모듈 memcache.ini입니다 /opt/eduserver/etc/php/conf.d.

커맨드 라인에서 memcache를 지우고 싶습니다. 웹 서버의 다른 부분을 ‘터치’하지 않고 어떻게 든 할 수 있습니까?



답변

예. memcache를 지울 수 있습니다. 시험:

telnet localhost 11211
flush_all
quit

memcache가 localhost 11211에서 실행되지 않으면이를 조정해야합니다.


답변

이것은 netcat을 사용하여 작동합니다

echo "flush_all" | nc -q 2 localhost 11211

그런 다음 “확인”을 기다리십시오.


답변

memcflush memcache 도구에는 원하는 것이 있습니다.

memcflush --servers=localhost:11211

localhost서버가 무엇이든 변경하십시오 .

memcache 도구는 서버에 설치되어 있지 않을 수 있습니다. 데비안 기반 OS를 실행하는 경우 다음과 같이 설치할 수 있습니다.

sudo apt-get install libmemcached-tools

답변

Bash에서는 다음과 같은 멋진 구문을 사용할 수 있습니다.

echo flush_all > /dev/tcp/localhost/11211

그렇지 않으면 다음 memflush명령을 사용하십시오 .

memflush --servers=localhost

답변

오히려 당신이 다음에 의해 명령이 순간 할 수 제한 시간을 기다리는 것보다 flush_allquit명령

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

또는없는 경우 nc:

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

당신은 확인할 수 있지만이 방법은, 출력을 생성하지 않지만 그것을 확인하여 작동하는 stats것을 볼 수 cmd_flush증가.


답변

(sleep 2; echo flush_all; sleep 2; echo quit; ) | telnet 127.0.0.1 11211

비 대화식으로 실행하려면

@heiko 덕분에


답변

memcached에 연결하기 위해 소켓을 사용하는 경우 구문은 다음과 같습니다.

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