How to Use memcached on different port
Asked Answered
S

1

5
i have excuted c:\memcached>memcached -l 0.0.0.0:11211,0.0.0.0:11212
getaddrinfo(): No such host is known.
failed to listen on TCP port 11211: No error.
and that was the response i got
if i will execute c:\memcached>memcached -p 11211 -d
memcached: option requires an argument -- d
Illegal argument "?" this was the response i got. so i tried these following commands
c:\memcached>memcached -p 11211 -d start
c:\memcached>memcached -p 11212 -d start

but still its listening to port 11211 not on 11212.why?

Shroudlaid answered 14/8, 2013 at 8:7 Comment(1)
the -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 optionLandsman
L
18

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.

Landsman answered 14/8, 2013 at 9:47 Comment(12)
when i tried with c:\memcached>sc start Memcached11211 got the following error. [SC] StartService: OpenService FAILED 1060: The specified service does not exist as an installed service. Any idea..why it came.? I just open the Elevated command prompt then executed the first two sc statment.then i changed the directory where my memcached.exe file is ,That is c:\memcached.Shroudlaid
Did the service register? You should have seen: [SC] CreateService SUCCESS once you created the service. If you do not see this message then the sc start memcached11211 will fail as the service was not installed. You can check if the service exists, and it's state using: sc query memcached11211. Additionally, make sure you're using the entire command line - the displayname="<name>" is neededLandsman
DESCRIPTION: Creates a service entry in the registry and Service Database. USAGE: sc <server> create [service name] [binPath= ] <option1> <option2>... OPTIONS: NOTE: The option name includes the equal sign. A space is required between the equal sign and the value. type= <own|share|interact|kernel|filesys|rec> (default = own) start= <boot|system|auto|demand|disabled|delayed-auto> (default = demand) error= <normal|severe|critical|ignore> (default = normal)Shroudlaid
binPath= <BinaryPathName> group= <LoadOrderGroup> tag= <yes|no> depend= <Dependencies(separated by / (forward slash))> obj= <AccountName|ObjectName> (default = LocalSystem) DisplayName= <display name> password= <password>Shroudlaid
when i Executed the first SC command in the Elevated Command prompt.Shroudlaid
I've updated the SC command line - it doesn't need spaces on some platforms; it looks like it needs the space on your systemLandsman
Do i have to provide the space after the equal sign?Shroudlaid
You have to provide the space after the equal sign, otherwise on your platform it will fail. You could have just mentioned the important piece, that the option= needs a space on your system (it looks to have been changed for Windows 8 to accept either with or without a space)Landsman
yaa its working now. thanx alot. But how i will spacify the size of the memcached for each port. i want to specify the size for the memcached other than its default value.Shroudlaid
can we increase size by specifying -m 1024?Shroudlaid
add those parameters to the binpath= option of the sc create command, or if you're updating the settings, you can use sc config binpath= "new command line with parameters". You'll need to restart the service to have the change take effectLandsman
Thanks for this, @Petesh; this answer was a lifesaver when the elsewhere documented memcache -d install and memcache -d start failed on me. And it's nice to know about sc also. Would that I could favorite an answer and not a question.Brigittebriley

© 2022 - 2024 — McMap. All rights reserved.