Adoptable Cookbooks List

Looking for a cookbook to adopt? You can now see a list of cookbooks available for adoption!
List of Adoptable Cookbooks

Supermarket Belongs to the Community

Supermarket belongs to the community. While Chef has the responsibility to keep it running and be stewards of its functionality, what it does and how it works is driven by the community. The chef/supermarket repository will continue to be where development of the Supermarket application takes place. Come be part of shaping the direction of Supermarket by opening issues and pull requests or by joining us on the Chef Mailing List.

Select Badges

Select Supported Platforms

Select Status


memcached (64) Versions 1.9.0

Installs memcached and includes memcached_instance resource for setting up memcached instances

cookbook 'memcached', '= 1.9.0', :supermarket
cookbook 'memcached', '= 1.9.0'
knife supermarket install memcached
knife supermarket download memcached
Quality 0%

memcached Cookbook

Build Status
Cookbook Version

Installs memcached and provides a define to set up an instance of memcache via runit.


A runit service can be set up for instances using the memcache_instance definition.


  • Ubuntu 10.04+
  • CentOS/RHEL 5+
  • openSUSE/SLES 12+
  • SmartOS base64 1.8.1 - Note that SMF directly configures memcached with no opportunity to alter settings. If you need custom parameters, use the memcached_instance provider instead.

May work on other systems with or without modification.


  • Chef 11+


  • runit
  • yum-epel


The following are node attributes passed to the template for the runit service.

  • memcached['memory'] - maximum memory for memcached instances.
  • memcached['user'] - user to run memcached as.
  • memcached['port'] - TCP port for memcached to listen on.
  • memcached['udp_port'] - UDP port for memcached to listen on.
  • memcached['listen'] - IP address for memcache to listen on, defaults to (world accessible).
  • memcached['maxconn'] - maximum number of connections to accept (defaults to 1024)
  • memcached['max_object_size'] - maximum size of an object to cache (defaults to 1MB)
  • memcached['logfilepath'] - path to directory where log file will be written.
  • memcached['logfilename'] - logfile to which memcached output will be redirected in $logfilepath/$logfilename.
  • memcached['threads'] - Number of threads to use to process incoming requests. The default is 4.
  • memcached['experimental_options'] - Comma separated list of extended or experimental options. (array)
  • memcached['ulimit'] - boolean true will set the ulimit to the maxconn value


Simply set the attributes and it will configure the /etc/memcached.conf file. If you want to use multiple memcached instances, you'll need to modify the recipe to disable the startup script and the template in the default recipe.

Use the definition, memcached_instance, to set up a runit service for the named memcached instance. (If the instance name is memcached the service name will be memcached otherwise it will be memcached-#{service_name})

memcached_instance 'myproj'

The recipe also reads in whether to start up memcached from a /etc/default/memcached "ENABLE_MEMCACHED" setting, which is "yes" by default.

License & Authors

Copyright:: 2009-2015, Chef Software, Inc
Copyright:: 2009, 37signals

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
See the License for the specific language governing permissions and
limitations under the License.

Dependent cookbooks

runit ~> 1.0
yum-epel >= 0.0.0

Contingent cookbooks

chef-manageiq Applicable Versions
ftp-cloudfs Applicable Versions
gitorious Applicable Versions
graphite Applicable Versions
mcrouter Applicable Versions
nodestack Applicable Versions
noosfero Applicable Versions
openstack-common Applicable Versions
phpstack Applicable Versions
pythonstack Applicable Versions
simplesamlphp Applicable Versions
stack_commons Applicable Versions

memcached Cookbook CHANGELOG

This file is used to list changes made in each version of the memcached cookbook.

1.9.0 (2015-11-05)

NOTE: This will be the last version of this cookbook that supports Chef 11 and the traditional attribute / resource hybrid setup for memcached instances. After this release this cookbook will function with attributes for a simple install or Chef 12.5 custom resources for creating individual memcached instances. If you utilize memcached instances using the attributes to define the config you'll need to pin to ~1.0 and later update to the new format in ~2.0.

  • Debian/Ubuntu switched the user that memcached runs under from nobody to memcache. Updated the cookbook to use this user on those platforms and create it in case we're on an older distro release that didn't yet have that user
  • Removed use of shellout that was causing issues for users
  • Improved the workaround on Debian/Ubuntu for not starting the service on package install so that it doesn't show up as a changed resource on every Chef run
  • Updated Chefspec to 4.X and added additional specs
  • Add oracle to the metadata
  • Add issues_url and source_url to the metadata
  • Add new,, and docs
  • Add travis and cookbook version badges to the readme
  • Clarified Chef 11 is the minimum required chef release
  • Updated platforms in the Kitchen config
  • Added chefignore file
  • Removed all hash rockets
  • Added a .foodcritic file with exclusions
  • Updated travis to use their container infrastructure, chef-dk for testing deps, and kitchen-docker for integration testing
  • Added a Rakefile to simplify testing
  • Removed yum as a dependency as it wasn't being used.
  • Removed attributes from the metadata as they hadn't been updated

v1.8.0 (2015-08-11)

  • updated serverspec tests to pass (See 3c7b5c9)
  • deconflict memcached_instance runit definition from default init (See b06d2d)
    • split default.rb into install.rb and configure.rb so that memcached_instance only starts the specified number of instances
  • added attributes logfilepath, version, threads, experimental_options, and ulimit
  • NOTE: if memcached_instance name is not specified or set to "memcached", the instance name will be "memcached". If anything else is specified, the instance name will be "memcached-${name}"

v1.7.2 (2014-03-12)

  • [COOK-4308] - Enable memcache on RHEL, Fedora, and Suse
  • [COOK-4212] - Support max_object_size rhel and fedora


Updating for yum ~> 3.0.
Fixing up style issues for rubocop.
Updating test-kitchen harness


fixing metadata version error. locking to 3.0


Locking yum dependency to '< 3'


[COOK-3741] UDP settings for memcached



  • COOK-3682 - Set user when using Debian packages


  • COOK-3336 - Add an option to specify the logfile (fix)



  • COOK-3336 - Add option to specify logfile
  • COOK-3299 - Document that memcached is exposed by default


  • COOK-2990 - Include listen, maxconn, and user in the runit service

New Feature

  • COOK-2790 - Add support for defining max object size



  • [COOK-2756]: add SUSE support to memcached cookbook
  • [COOK-2791]: Remove the template for Karmic from the memcached cookbook


  • [COOK-2600]: support memcached on SmartOS


  • [COOK-2386] - update memcached_instance definition for runit_service resource


  • [COOK-1469] - include yum epel recipe on RHEL 5 (introduces yum cookbook dependency)
  • [COOK-2202] - Fix typo in previous ticket/commits
  • [COOK-2266] - pin runit dependency


  • [COOK-990] - params insite runit_service isn't the same as outside


  • [COOK-1764] - Add Max Connections to memcached.conf and fix typos


  • [COOK-1192] - metadata doesn't include RH platforms (supported)
  • [COOK-1354] - dev package changed name on centos6


  • [COOK-1081] - support for centos/rhel


  • [COOK-706] - Additional info in README
  • [COOK-828] - Package for RHEL systems


  • Current released version

Foodcritic Metric

1.9.0 failed this metric

FC015: Consider converting definition to a LWRP: /tmp/cook/51d3787c88ec8afc2d11739c/memcached/definitions/memcached_instance.rb:1