如何在不同端口的同一台服务器上创建两个memcached服务器实例?

pan*_*ish 33 memcached

我试图在memcached conf文件中添加-l 11211 -l 11212.但它只是听第一个,即1121

Dav*_*iev 66

首先我使用了mikewied的解决方案,但后来我遇到了自动启动守护进程的问题.该解决方案中另一个令人困惑的事情是它不使用来自等的配置.我即将在/etc/init.d中创建自己的启动脚本,但后来我查看了/etc/init.d/memcached文件和看到了这个美丽的解

# Usage:
# cp /etc/memcached.conf /etc/memcached_server1.conf
# cp /etc/memcached.conf /etc/memcached_server2.conf
# start all instances:
# /etc/init.d/memcached start
# start one instance:
# /etc/init.d/memcached start server1
# stop all instances:
# /etc/init.d/memcached stop
# stop one instance:
# /etc/init.d/memcached stop server1
# There is no "status" command.
Run Code Online (Sandbox Code Playgroud)

基本上这个问题的读者只需要阅读该/etc/init.d/memcached文件.

干杯

  • 这应该是所选择的解决方案 (7认同)

mik*_*ied 46

以下是memcached所说的-l命令用于:

-l <addr>     interface to listen on (default: INADDR_ANY, all addresses)
              <addr> may be specified as host:port. If you don't specify
              a port number, the value you specified with -p or -U is
              used. You may specify multiple addresses separated by comma
              or by using -l multiple times
Run Code Online (Sandbox Code Playgroud)

首先,如果使用-l标志,则需要指定要memcached监听的接口.使用0.0.0.0所有接口和使用127.0.0.1是你只是想能够从访问memcached的localhost.其次,不要使用两面-l旗帜.仅使用一个,并用逗号分隔每个地址.下面的命令应该做你想要的.

memcached -l 0.0.0.0:11211,0.0.0.0:11212
Run Code Online (Sandbox Code Playgroud)

请记住,这将有两个memcached实例侦听两个端口.要在一台计算机上安装两个memcached实例,请运行这两个命令.

memcached -p 11211 -d

memcached -p 11212 -d
Run Code Online (Sandbox Code Playgroud)