Skip to content

How to install Memcached on Windows machine

After some research I found that there is a Win32 binary version of memcached available here.

So go there and download win32 binary version to your computer. When downloaded, extract the file to folder memcahced on your C partition.

You should get only one file named memcached.exe. Now we need to install this as a service, as memCached is daemon and should be run only as service.

To install Memcached as a service, follow these steps (please change all forward slashes to backslashes):

  1. If you’re running Vista, you should set memcached.exe to Run as administrator
  2. Install the service using the command: [code lang=”html”]c:/memcached/memcached.exe -d install[/code] from the command prompt
  3. Start the server from the Services or by running one of the following commands: [code lang=”html”]c:/memcached/memcached.exe -d start[/code] or [code lang=”html”]net start "memcached Server"[/code]

That is it, now your memcached server is installed and is listening to port 11211. There is one more thing left to do. By default, server is set to 64Mb memory limit, which is too small. To correct, go to Registry Editor and find key [code lang=”html”]HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/memcached Server .[/code]

Change the ImagePath entry to:
[code lang=”html”]“C:/memcached/memcached.exe” -d runservice -m 512[/code]

This way you will use 512 Mb memory limit for your server.

If you are using WAMP, then just turn on php_memcache extension in it. Now we are ready to go testing.

The simplest test is to write something to memcache that will expire in 30 seconds, and then try to retrieve the value from cache.

So write this into your test file:

[code lang=”php”]
<?php
$memcache = new Memcache; // instantiating memcache extension class
$memcache->connect("localhost",11211); // try 127.0.0.1 instead of localhost
// if it is not working

echo "Server’s version: " . $memcache->getVersion() . "<br />\n";

// we will create an array which will be stored in cache serialized
$testArray = array(‘horse’, ‘cow’, ‘pig’);
$tmp = serialize($testArray);

$memcache->add("key", $tmp, 30);

echo "Data from the cache:<br />\n";
print_r(unserialize($memcache->get("key")));
?>
[/code]

If everything went ok, you should see your array written out of memcache. Now you can use this powerful caching mechanism to develop really fast PHP applications. If you need to know more, go to PHP manual Memcached page