Next Tutorial

Drupal 7 Tutorial Part 16: Drupal 7 Reports & Logs Explained

How to install memcache on linux and how to integrate with Drupal 6

Submitted by anilsagar on Fri, 02/26/2010 - 15:41

Hi Every one,

If performance is the issue for your Drupal site then one thing you are missing is memcache. This article explains you step by step process to install and memcache and how memcache helps to boost your drupal website.

What is memcache ?

Memcached is a high-performance, distributed memory object caching system, generic in nature, but intended for use in speeding up dynamic web applications by alleviating database load.

Memcached's magic lies in its two-stage hash approach. It behaves as though it were a giant hash table, looking up key = value pairs. Give it a key, and set or get some arbitrary data.

When doing a memcached lookup, first the client hashes the key against the whole list of servers. Once it has chosen a server, the client then sends its request, and the server does an internal hash key lookup for the actual item data.

For example, if we have clients 1, 2, 3, and servers A, B, C:

Client 1 wants to set key "foo" with value "barbaz". Client 1 takes the full list of servers (A, B, C), hashes the key against them, then lets say ends up picking server B. Client 1 then directly connects to server B, and sets key "foo" with value "barbaz". Next, client 2 wants to get key "foo". Client 2 runs the same client library as client 1, and has the same server list (A, B, C). It is able to use the same hashing process to figure out key "foo" is on server B. It then directly requests key "foo" and gets back "barbaz".

Installing Memcache on Linux Machine :

Step 1:

Run this command ~$> sudo aptitude install memcached

Step 2:

Run this command ~$> sudo aptitude install php5-dev

Step 3: Installing PECL memcache

~$> cd /usr/local/src
~$> wget http://pecl.php.net/get/memcache-2.2.5.tgz
~$> tar zxvf memcache-2.2.5.tgz

~$> cd memcache-2.1.2
~$> phpize
~$> ./configure
~$># make && make install

Step 4: Open your php.ini file at /etc/php5/apache2/php.ini and add the below line

extension = memcache.so

Step 5: Restart Apache ~$>sudo /etc/init.d/apache2 restart

Step 6: If your memcache is installed properly you can see memcache configurations at http://localhost/info.php

Basically info.php is a file at /var/www folder with code <?php echo phpinfo(); ?>

Step7:

The optimal number of daemons depends on your needs, but generally you want one for each cache table in your Drupal database because this makes clearing the cache on any of those tables less disruptive to the rest of your cache. So try to add these lines in memcached file in /etc/init.d/

memcached -u www-data -p 11211 -m 2 -d
memcached -u www-data -p 11212 -m 2 -d
memcached -u www-data -p 11213 -m 2 -d
memcached -u www-data -p 11214 -m 2 -d
memcached -u www-data -p 11215 -m 2 -d
memcached -u www-data -p 11216 -m 2 -d

Step 8: Restart memcache and try this command to verify the memcached daemons that are running.

~$>ps -A | grep memcached
23846 ? 00:00:00 memcached
23848 ? 00:00:00 memcached
23850 ? 00:00:00 memcached
23852 ? 00:00:00 memcached
23854 ? 00:00:00 memcached
23856 ? 00:00:00 memcached

Now memcache is installed and running on your system. Its time to integrate with drupal now.

Step 9: Download the drupal memcache module from here http://drupal.org/project/memcache .

Step 10: Open your php.ini file at /etc/php5/apache2/php.ini and add the below line

memcache.hash_strategy="consistent"

Step 11: Put your site offline.

Step 12: Edit your settings.php file in drupal /sites/default directory with below code.

$conf = array(
'cache_inc' => './sites/all/modules/contrib/memcache/memcache.db.inc',
'memcache_servers' => array(
'localhost:11211' => 'default',
'localhost:11212' => 'filter',
'localhost:11213' => 'menu',
'localhost:11214' => 'page',
'localhost:11215' => 'form',
'localhost:11216' => 'block',
),
'memcache_bins' => array(
'cache' => 'default',
'cache_filter' => 'filter',
'cache_menu' => 'menu',
'cache_page' => 'page',
'cache_form' => 'form',
'cache_block' => 'block',
),
);

Step 13: Enable the memcache module that you downloaded at step 9.

Step 14: Now if you enable memcache statistics at http://localhost/drupal-6.15/admin/settings/memcache then you can see the statistics something like below if your memcache is properly installed and running.

* get:
o variables
o theme_registry:garland
o links:navigation:page-cid:admin/settings/memcache:1
o links:navigation:tree-data:3c28d675de5c9165717c8bc9be1c436c
o links:primary-links:page-cid:admin/settings/memcache:1
o links:primary-links:tree-data:5d6d3aaaaef5fba302ce62698fa37bbe
o links:secondary-links:page-cid:admin/settings/memcache:1
o links:secondary-links:tree-data:5d6d3aaaaef5fba302ce62698fa37bbe
* set:
o variables
o theme_registry:garland
* hit:
o links:navigation:page-cid:admin/settings/memcache:1
o links:navigation:tree-data:3c28d675de5c9165717c8bc9be1c436c
o links:primary-links:page-cid:admin/settings/memcache:1
o links:primary-links:tree-data:5d6d3aaaaef5fba302ce62698fa37bbe
o links:secondary-links:page-cid:admin/settings/memcache:1
o links:secondary-links:tree-data:5d6d3aaaaef5fba302ce62698fa37bbe
* bins:
o cache
o cache
o cache
o cache
o cache_menu
o cache_menu
o cache_menu
o cache_menu
o cache_menu
o cache_menu

Thats it you are done and installed memcache.!!

Cheers,
Anil Sagar

5 comments

really nice article... great

Submitted by Anonymous (not verified) on Thu, 08/18/2011 - 11:14.

really nice article... great job

esBkbXXwYxH

Submitted by Katty (not verified) on Tue, 08/16/2011 - 00:10.

Well put, sir, well put. I'll certailny make note of that.

re:

Submitted by Anonymous (not verified) on Sun, 11/07/2010 - 23:41.

Nice post. What kind of blog platform is this? I don't think its wordpress. Where did you get your template? Is it prebuilt?

Jesse - PDF Search

Hi Jesse

Submitted by anilsagar on Thu, 08/18/2011 - 22:15.

I am using Drupal CMS platform for this, and this is a contributed theme called corolla which is prebuilt.

Good

Submitted by Anonymous on Wed, 05/19/2010 - 17:29.

Really very good material.

©2010 AnilSagar. All rights reserved. Drupal theme by Kiwi Themes.