Skip to content
memcached compatible KVS with master/slave replication.
Branch: master
Clone or download
ymmt2005 Merge pull request #73 from herumi/parse_unlock_is_equal_to_lock
parse_unlock calls parse_lock to remove duplicated code
Latest commit 5b57fe4 Oct 6, 2017
Type Name Latest commit message Commit time
Failed to load latest commit information.
cybozu std::function requires #include <functional> Feb 1, 2017
etc Fix logrotate script for systemd. Oct 3, 2016
test Refactor tests. Mar 19, 2016
.travis.yml Run integration tests on travis-ci. Mar 19, 2016
Makefile Sort list of files to allow reproducible building Nov 3, 2016 Fix link in Oct 26, 2016 Detect libtcmalloc header by a shell script. Nov 17, 2015

Build Status

yrmcds is a memory object caching system with master/slave replication.

Currently, yrmcds supports two protocols: the first is an enhanced memcached, and another is a protocol to implement distributed resource counters.

Since the memcached protocol is perfectly compatible with the original implementation, yrmcds can be used as a drop-in replacement for memcached. Thanks to its virtual-IP based replication system, existing applications can obtain high-available memcached-compatible service without any modifications.

A companion client library libyrmcds and a PHP extension are also available.

yrmcds was developed originally for


yrmcds is licensed under the BSD 2-clause license.

The source code contains a SipHash implementation borrowed from csiphash which is licensed under the MIT license.


  • Complete memcached text and binary protocols with these extensions:
  • Distributed resource counter protocol.
  • Optional memory security to store confidential information like SSL session data.
  • Large objects can be stored in temporary files, not in memory.
  • Virtual-IP based master-slave replication.
    • Automatic fail-over
    • Automatic recovery of redundancy.
  • Global LRU eviction / no slab distribution problem.
    • Unlike memcached, yrmcds is not involved with slabs problems. (1, 2)

A companion client library and a PHP extension are also available.

See also usage guide, future plans, differences from memcached, design notes and some benchmark results.


  • Linux.
  • C++11 compiler (gcc 4.8.1+ or clang 3.3+).
  • GNU make.


Just run make.

yrmcds runs faster when linked with TCMalloc. On Debian/Ubuntu, install libgoogle-perftools-dev package to prepare TCMalloc.

The makefile automatically detects TCMalloc if available.


On Ubuntu, sudo make install installs yrmcds under /usr/local. What make install does are:

  • Install yrmcdsd under /usr/local/sbin.
  • Install service start script for systemd or upstart.
  • Install logrotate script.
  • Create /etc/yrmcds.conf.

About the name

The name yrmcds was taken from "Ymmt's Replicating MemCacheD for Sessions".
As it reads, yrmcds was developed mainly for session storage.

The correct pronunciation sounds like: "Yo-Ru-Mac-Do" (夜マクド in Japanese).

You can’t perform that action at this time.