You are here

README.txt in Memcache API and Integration 5.2

Same filename and directory in other branches
  1. 8.2 README.txt
  2. 5 README.txt
  3. 6 README.txt
  4. 7 README.txt
## INSTALLATION ##

These are the broad steps you need to take in order to use this software. Order
is important.

1. Install the memcached binaries on your server.
2. Install the PECL memcache extension for PHP.
3. Put your site into offline mode.
4. Download and install the memcache module.
5. If you have previously been running the memcache module, run update.php.
6. Apply the DRUPAL-5-cache-serialize.patch that comes with the module to your
   Drupal installation.
7. Start at least one instance of memcached on your server.
8. Edit settings.php to configure the servers, clusters and bins that memcache
   is supposed to use.
9. Edit settings.php to include either memcache.inc or memcache.db.inc.
10. Optionally, edit settings.php to include either session-memcache.inc or
    sessions-memcache.db.inc.
11. Bring your site back online.

For instructions on 1 and 2 above, please see the INSTALLATION.txt file that
comes with the memcache module download.

Either the memcache.inc or the memcache.db.inc file is intended to be used
instead of cache.inc, utilizing Drupal's pluggable cache system. The .db.inc
variant saves all data to the database as well, so the site will still have
the performance benefits of cache even if you take your memcache offline. The
site should not ever break due to memcache not being available... it is only
a question of whether caching is still available or not. The memcache.inc file
doesn't save any data to the database and thus has the biggest potential for
increasing your site's performance. If you use this file it is important to
have enough memory allocated to memcache to store everything (including the page
cache), otherwise the cache misses will negate the benefit of the cache hits.

Update $conf in settings.php to tell Drupal which cache_inc file to use:

 $conf = array(
   // The path to wherever memcache.inc is. The easiest is to simply point it
   // to the copy in your module's directory.
   'cache_inc' => './sites/all/modules/memcache/memcache.inc',
   // or
   // 'cache_inc' => './sites/all/modules/memcache/memcache.db.inc',
 );

## SERVERS ##

If you want the simple version, you can start one default memcache instance on
your web server like this: memcached -m 24 -p 11211 -d
If that is enough to meet your needs, there is no more configuration needed. If
you want to utilize this module's sophisticated clustering feature and spread
your cache over several machines, or if your cache is found on a machine other
than your web server, read on.

The available memcached servers are specified in $conf in settings.php. If
you do not specify any servers, memcache.inc assumes that you have a
memcached instance running on localhost:11211. If this is true, and it is
the only memcached instance you wish to use, no further configuration is
required.

If you have more than one memcached instance running, you need to add two
arrays to $conf; memcache_servers and memcache_bins. The arrays follow this
pattern:

'memcache_servers' => array(host1:port => cluster, host2:port => cluster, hostN:port => cluster)

'memcache_bins' => array(bin1 => cluster, bin2 => cluster, binN => cluster)

The bin/cluster/server model can be described as follows:

- Servers are memcached instances identified by host:port.

- Bins are groups of data that get cached together and map 1:1 to the $table
  param in cache_set(). Examples from Drupal core are cache_filter,
  cache_menu. The default is 'cache'.

- Clusters are groups of servers that act as a memory pool.

- many bins can be assigned to a cluster.

- The default cluster is 'default'.

Here is a simple setup that has two memcached instances, both running on
localhost. The 11212 instance belongs to the 'pages' cluster and the table
cache_page is mapped to the 'pages' cluster. Thus everything that gets cached,
with the exception of the page cache (cache_page), will be put into 'default',
or the 11211 instance. The page cache will be in 11212.

$conf = array(
  ...
  'memcache_servers' => array('localhost:11211' => 'default',
                              'localhost:11212' => 'pages'),
  'memcache_bins' => array('cache_page' => 'pages'),
);

Here is an example configuration that has two clusters, 'default' and
'cluster2'. Five memcached instances are divided up between the two
clusters. 'cache_filter' and 'cache_menu' bins goe to 'cluster2'. All other
bins go to 'default'.

$conf = array(
  'cache_inc' => './includes/memcache.inc',
  'memcache_servers' => array('localhost:11211' => 'default',
                              'localhost:11212' => 'default',
                              '123.45.67.890:11211' => 'default',
                              '123.45.67.891:11211' => 'cluster2',
                              '123.45.67.892:11211' => 'cluster2'),

  'memcache_bins' => array('cache' => 'default',
                           'cache_filter' => 'cluster2',
                           'cache_menu' => 'cluster2'),
);

## PREFIXING ##

If you want to have multiple Drupal installations share memcached instances,
you need to include a unique prefix for each Drupal installation in the $conf
array of settings.php:

$conf = array(
  ...
  'memcache_key_prefix' => 'something_unique',
);

## PATCHES ##

The DRUPAL-5-cache-serialize.patch must be applied to your Drupal installation
for this software to work. The patch depends on a column that needs to get added
to all of the existing cache tables for your site. This column has been
introduced in the DRUPAL-6 development branch so this patch is future-safe if
you ever upgrade to DRUPAL-6. To actually add the column to your database, you
need to either install the memcache.module, or, if it is already installed and
you are updating to this version, run update.php. Either installing the module
or running update.php will add the needed column, Uninstalling the module will
remove the column.


## MEMCACHE ADMIN ##

A module offering a UI for memcache is on the way. It will provide stats, a
way to clear the cache, and an interface to organize servers/bins/clusters.

File

README.txt
View source
  1. ## INSTALLATION ##
  2. These are the broad steps you need to take in order to use this software. Order
  3. is important.
  4. 1. Install the memcached binaries on your server.
  5. 2. Install the PECL memcache extension for PHP.
  6. 3. Put your site into offline mode.
  7. 4. Download and install the memcache module.
  8. 5. If you have previously been running the memcache module, run update.php.
  9. 6. Apply the DRUPAL-5-cache-serialize.patch that comes with the module to your
  10. Drupal installation.
  11. 7. Start at least one instance of memcached on your server.
  12. 8. Edit settings.php to configure the servers, clusters and bins that memcache
  13. is supposed to use.
  14. 9. Edit settings.php to include either memcache.inc or memcache.db.inc.
  15. 10. Optionally, edit settings.php to include either session-memcache.inc or
  16. sessions-memcache.db.inc.
  17. 11. Bring your site back online.
  18. For instructions on 1 and 2 above, please see the INSTALLATION.txt file that
  19. comes with the memcache module download.
  20. Either the memcache.inc or the memcache.db.inc file is intended to be used
  21. instead of cache.inc, utilizing Drupal's pluggable cache system. The .db.inc
  22. variant saves all data to the database as well, so the site will still have
  23. the performance benefits of cache even if you take your memcache offline. The
  24. site should not ever break due to memcache not being available... it is only
  25. a question of whether caching is still available or not. The memcache.inc file
  26. doesn't save any data to the database and thus has the biggest potential for
  27. increasing your site's performance. If you use this file it is important to
  28. have enough memory allocated to memcache to store everything (including the page
  29. cache), otherwise the cache misses will negate the benefit of the cache hits.
  30. Update $conf in settings.php to tell Drupal which cache_inc file to use:
  31. $conf = array(
  32. // The path to wherever memcache.inc is. The easiest is to simply point it
  33. // to the copy in your module's directory.
  34. 'cache_inc' => './sites/all/modules/memcache/memcache.inc',
  35. // or
  36. // 'cache_inc' => './sites/all/modules/memcache/memcache.db.inc',
  37. );
  38. ## SERVERS ##
  39. If you want the simple version, you can start one default memcache instance on
  40. your web server like this: memcached -m 24 -p 11211 -d
  41. If that is enough to meet your needs, there is no more configuration needed. If
  42. you want to utilize this module's sophisticated clustering feature and spread
  43. your cache over several machines, or if your cache is found on a machine other
  44. than your web server, read on.
  45. The available memcached servers are specified in $conf in settings.php. If
  46. you do not specify any servers, memcache.inc assumes that you have a
  47. memcached instance running on localhost:11211. If this is true, and it is
  48. the only memcached instance you wish to use, no further configuration is
  49. required.
  50. If you have more than one memcached instance running, you need to add two
  51. arrays to $conf; memcache_servers and memcache_bins. The arrays follow this
  52. pattern:
  53. 'memcache_servers' => array(host1:port => cluster, host2:port => cluster, hostN:port => cluster)
  54. 'memcache_bins' => array(bin1 => cluster, bin2 => cluster, binN => cluster)
  55. The bin/cluster/server model can be described as follows:
  56. - Servers are memcached instances identified by host:port.
  57. - Bins are groups of data that get cached together and map 1:1 to the $table
  58. param in cache_set(). Examples from Drupal core are cache_filter,
  59. cache_menu. The default is 'cache'.
  60. - Clusters are groups of servers that act as a memory pool.
  61. - many bins can be assigned to a cluster.
  62. - The default cluster is 'default'.
  63. Here is a simple setup that has two memcached instances, both running on
  64. localhost. The 11212 instance belongs to the 'pages' cluster and the table
  65. cache_page is mapped to the 'pages' cluster. Thus everything that gets cached,
  66. with the exception of the page cache (cache_page), will be put into 'default',
  67. or the 11211 instance. The page cache will be in 11212.
  68. $conf = array(
  69. ...
  70. 'memcache_servers' => array('localhost:11211' => 'default',
  71. 'localhost:11212' => 'pages'),
  72. 'memcache_bins' => array('cache_page' => 'pages'),
  73. );
  74. Here is an example configuration that has two clusters, 'default' and
  75. 'cluster2'. Five memcached instances are divided up between the two
  76. clusters. 'cache_filter' and 'cache_menu' bins goe to 'cluster2'. All other
  77. bins go to 'default'.
  78. $conf = array(
  79. 'cache_inc' => './includes/memcache.inc',
  80. 'memcache_servers' => array('localhost:11211' => 'default',
  81. 'localhost:11212' => 'default',
  82. '123.45.67.890:11211' => 'default',
  83. '123.45.67.891:11211' => 'cluster2',
  84. '123.45.67.892:11211' => 'cluster2'),
  85. 'memcache_bins' => array('cache' => 'default',
  86. 'cache_filter' => 'cluster2',
  87. 'cache_menu' => 'cluster2'),
  88. );
  89. ## PREFIXING ##
  90. If you want to have multiple Drupal installations share memcached instances,
  91. you need to include a unique prefix for each Drupal installation in the $conf
  92. array of settings.php:
  93. $conf = array(
  94. ...
  95. 'memcache_key_prefix' => 'something_unique',
  96. );
  97. ## PATCHES ##
  98. The DRUPAL-5-cache-serialize.patch must be applied to your Drupal installation
  99. for this software to work. The patch depends on a column that needs to get added
  100. to all of the existing cache tables for your site. This column has been
  101. introduced in the DRUPAL-6 development branch so this patch is future-safe if
  102. you ever upgrade to DRUPAL-6. To actually add the column to your database, you
  103. need to either install the memcache.module, or, if it is already installed and
  104. you are updating to this version, run update.php. Either installing the module
  105. or running update.php will add the needed column, Uninstalling the module will
  106. remove the column.
  107. ## MEMCACHE ADMIN ##
  108. A module offering a UI for memcache is on the way. It will provide stats, a
  109. way to clear the cache, and an interface to organize servers/bins/clusters.