The Wayback Machine - https://web.archive.org/web/20200620125200/https://github.com/facebook/mcrouter
Skip to content
Mcrouter is a memcached protocol router for scaling memcached deployments.
C++ Python M4 C Ragel Shell Other
Branch: master
Clone or download

Latest commit

stuclar and facebook-github-bot Update on keys after deserialization for thrift standalone
Summary: Call update() manually on change of underlying storage.

Reviewed By: jmswen

Differential Revision: D22029172

fbshipit-source-id: 5f8b672124c2e16a1a7c1baf408ad8fb35d3746d
Latest commit fdff56c Jun 13, 2020

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
mcrouter Update on keys after deserialization for thrift standalone Jun 13, 2020
.travis.yml split travis build to two jobs and use cache storing dependency Nov 7, 2019
CODE_OF_CONDUCT.md Adding Code of Conduct file (#313) Aug 29, 2019
CONTRIBUTING.md Adding Contributing file (#312) Aug 28, 2019
LICENSE Tidy up license headers [3/3] Oct 14, 2019
README.md docs: Add pronunciation guide (#342) Jun 3, 2020

README.md

Mcrouter Build Status

Mcrouter (pronounced mc router) is a memcached protocol router for scaling memcached deployments. It's a core component of cache infrastructure at Facebook and Instagram where mcrouter handles almost 5 billion requests per second at peak.

Mcrouter is developed and maintained by Facebook.

See https://github.com/facebook/mcrouter/wiki to get started.

Quick start guide

New! Ubuntu package available

Currently, we support Ubuntu Bionic (18.04) amd64. Here is how to install it:

Add the repo key:

$ wget -O - https://facebook.github.io/mcrouter/debrepo/bionic/PUBLIC.KEY | sudo apt-key add

Add the following line to apt sources file /etc/apt/sources.list

deb https://facebook.github.io/mcrouter/debrepo/bionic bionic contrib

Update the local repo cache:

$ sudo apt-get update

Install mcrouter:

$ sudo apt-get install mcrouter

Installing From Source

See https://github.com/facebook/mcrouter/wiki/mcrouter-installation for more detailed installation instructions.

Mcrouter depends on folly, wangle, fizz, and fbthrift.

The installation is a standard autotools flow:

$ autoreconf --install
$ ./configure
$ make
$ sudo make install
$ mcrouter --help

Assuming you have a memcached instance on the local host running on port 5001, the simplest mcrouter setup is:

$ mcrouter \
    --config-str='{"pools":{"A":{"servers":["127.0.0.1:5001"]}},
                  "route":"PoolRoute|A"}' \
    -p 5000
$ echo -ne "get key\r\n" | nc 0 5000

(nc is the GNU Netcat, http://netcat.sourceforge.net/)

Features

  • Memcached ASCII protocol
  • Connection pooling
  • Multiple hashing schemes
  • Prefix routing
  • Replicated pools
  • Production traffic shadowing
  • Online reconfiguration
  • Flexible routing
  • Destination health monitoring/automatic failover
  • Cold cache warm up
  • Broadcast operations
  • Reliable delete stream
  • Multi-cluster support
  • Rich stats and debug commands
  • Quality of service
  • Large values
  • Multi-level caches
  • IPv6 support
  • SSL support

Links

Documentation: https://github.com/facebook/mcrouter/wiki Engineering discussions and support: https://www.facebook.com/groups/mcrouter

License

Copyright (c) Facebook, Inc. and its affiliates.

Licensed under the MIT license: https://github.com/facebook/mcrouter/blob/master/LICENSE

You can’t perform that action at this time.