memcached for windows will not listen on multiple ports with the same instance, you will need multiple instances of the service to get it to run as a service on different ports.
To accomplish this, you will need to use a different mechanism for installing the service, rather than the memcached -d install
mechanism.
We can use sc
to accomplish this. All these commands will need to be run from an elevated command prompt.
sc create "Memcached11211" binPath= "C:\memcached\memcached.exe -d runservice -p 11211" DisplayName= "Memcached11211" start= auto
sc create "Memcached11212" binPath= "C:\memcached\memcached.exe -d runservice -p 11212" DisplayName= "Memcached11212" start= auto
Then we start them:
C:\memcached>sc start Memcached11211
SERVICE_NAME: Memcached11211
TYPE : 10 WIN32_OWN_PROCESS
STATE : 4 RUNNING
(STOPPABLE, NOT_PAUSABLE, ACCEPTS_SHUTDOWN)
WIN32_EXIT_CODE : 0 (0x0)
SERVICE_EXIT_CODE : 0 (0x0)
CHECKPOINT : 0x0
WAIT_HINT : 0x0
PID : 5412
FLAGS :
C:\memcached>sc start Memcached11212
SERVICE_NAME: Memcached11212
TYPE : 10 WIN32_OWN_PROCESS
STATE : 4 RUNNING
(STOPPABLE, NOT_PAUSABLE, ACCEPTS_SHUTDOWN)
WIN32_EXIT_CODE : 0 (0x0)
SERVICE_EXIT_CODE : 0 (0x0)
CHECKPOINT : 0x0
WAIT_HINT : 0x0
PID : 7976
FLAGS :
C:\memcached>netstat -an | grep 112
File STDIN:
TCP 0.0.0.0:11211 0.0.0.0:0 LISTENING
TCP 0.0.0.0:11212 0.0.0.0:0 LISTENING
TCP [::]:11211 [::]:0 LISTENING
TCP [::]:11212 [::]:0 LISTENING
UDP 0.0.0.0:11211 *:*
UDP 0.0.0.0:11211 *:*
UDP [::]:11211 *:*
UDP [::]:11211 *:*�
Note however that as configured, the udp port is still 11211, so it would need to be changed to ensure that udp can be used as well for both services.
You would add a -u 11211
and -u 11212
to the sc configuration lines.
To stop and individual memcached service you would use:
sc stop memcached11211
sc stop memcached11212
to remove the services do:
sc delete memcached11211
sc delete memcached11212
If however you're just trying it out on different ports then just use multiple cmd
windows and run it that way.
-d
option on windows manages a windows style service - it's completely different from the -d option on linux. When you do-d start
it starts the windows service, and completely ignores the -p option. If you want to test it on multiple ports open up two cmd windows and launch it separately in each without the -d option – Landsman