如何使用命令行刷新Memcached服务器的内容

时间:2020-01-09 10:42:15  来源:igfitidea点击:

问题:
我已经在Linux下安装了memcached服务器,但它仍显示旧数据。
如何在Linux或者类似Unix的系统上刷新Memcached实例/服务器的内容?

答:
您可以使用flush_all命令使所有现有的缓存项无效。
该命令不会暂停服务器,因为它会立即返回。
它根本不会释放或者刷新内存,只会导致所有项目过期。
您可以使用以下任何一种方法发送" flush_all"命令:

  • ``nc`命令nc(也称为netcat)实用程序几乎用于所有涉及TCP或者UDP的情况。
  • ``telnet`命令telnet命令用于使用TELNET协议与另一个主机进行通信。

netcat(nc)命令示例以刷新Memcached服务器的内容

nc(netcat)命令是一个简单的unix实用程序,可使用TCP或者UDP协议跨网络连接读取和写入数据。
它可以简单地连接到memcached实例并使所有现有缓存无效:

echo 'flush_all' | nc localhost 11211

在某些系统上,它可能称为netcat,因此请尝试以下操作以删除在Linux上运行的内存缓存服务器的所有数据:

echo 'flush_all' | netcat localhost 11211

试试nc:

nc 192.168.1.10 11211

其中:

  • 192.168.1.10-memcached服务器实例
  • 本地主机-memcached服务器实例
  • 11211-内存缓存服务器端口。

您可以在~/.bashrc文件中创建bash shell别名,如下所示:

## bash shortcut ##
alias flush_mem_cache_server="echo 'flush_all' | netcat 127.0.0.1 11211"

并按如下所示使用它:

$ flush_mem_cache_server

Telnet命令示例以刷新Memcached服务器的内容

执行以下命令:

telnet your-memcached-server-ip PORT

在此示例中,连接到192.168.1.10 11211并发出如下的flush_all命令:

$ telnet 192.168.1.10 11211

输出示例:

Trying 192.168.1.10...
Connected to cache01.theitroad.com.
Escape character is '^]'.
flush_all
OK
quit
Connection to cache01.theitroad.com closed by foreign host.

(
使用telnet命令使使用flush_all命令的所有现有缓存项无效)

仅使用bash刷新Memcached中的所有内容

语法为:

echo flush_all > /dev/tcp/127.0.0.1/11211