我有一些memcached的问题,我有一个想法是,它可能已经在我尝试运行它的端口上运行,由我们网络上的其他用户启动。有没有办法告诉目前正在使用的memcached端口?
尝试
netstat -ap | grep TheChosenPort#
并查看是否有任何内容正在侦听这些TCP或UDP端口。
要查看它是否正在运行,您还可以尝试远程登录到端口:
telnet localhost 11211
如果这样可行,您将看到以下内容(告诉您给定端口已打开):
Connected to localhost.
Escape character is '^]'.
现在,如果memcached IS正在运行,您可以通过发出给定命令来查看一些基本统计信息:
stats
如果失败,您将知道memcached未运行。
在Linux中,通过netstat
检查,例如
$ sudo netstat -nap | grep memcached
tcp 0 0 127.0.0.1:11211 0.0.0.0:* LISTEN 5067/memcached
使用ps
过滤进程:
$ ps wuax | grep memcache
497 5067 0.0 1.3 384824 53928 ? Ssl Apr11 1:28 memcached -d -p 11211 -u memcached -m 64 -c 1024 -P /var/run/memcached/memcached.pid -l 127.0.0.1
该端口可以在-p
旁边找到,例如-p 11211
。如果未指定port,则默认为11211
。
您可以将stats
命令发送到给定端口,并查看memcached是否响应,例如
exec 3<>/dev/tcp/localhost/11211; printf "stats\nquit\n" >&3; cat <&3
使用telnet
连接到主机并运行stats
(如上所述),例如
$ telnet localhost 11211
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
stats
STAT pid 23669
STAT uptime 433859
然后按Ctrl-]和Ctrl-D完成。
使用以下命令
ps -U user | grep -v grep | grep memcached
如果你问这个问题,听起来你正在运行一个非常老的版本。如果您在最近的版本中执行此操作,您会看到:
% ./memcached
failed to listen on TCP port 11211: Address already in use
您可以检查memcached状态
service memcached status
你会在底部看到这样的一行:
└─1560 /usr/bin/memcached -vv -m 64 -p 11211 -u memcache -l 127.0.0.1 -P /var/run/memcached/memcached.pid
-p 11211是它正在运行的端口。