Awesome
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 kintone.com.
License
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.
Features
- 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.
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.
Prerequisites
- Linux.
- GCC or clang with C++17 support.
- GNU make.
Build
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.
Install
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).