在大型网站架构中,为了应对大量的数据访问,缓存是非常重要的。
Memcached是就免费的一款不错的工具。
What is Memcached?
Free & open source, high-performance, distributed memory object caching system, generic in nature, but intended for use in speeding up dynamic web applications by alleviating database load.
Memcached is an in-memory key-value store for small chunks of arbitrary data (strings, objects) from results of database calls, API calls, or page rendering.
Memcached is simple yet powerful. Its simple design promotes quick deployment, ease of development, and solves many problems facing large data caches. Its API is available for most popular languages.
Clients
C / C++
libmemcached
- http://libmemcached.org/ by Brian Aker, Commercial Support available from Data Differential
- BSD license, it has been in production at websites for years. Aggressively optimised, ability to run async, supports binary protocol, triggers, replica, etc.
libmemcache
- http://people.freebsd.org/~seanc/libmemcache by Sean Chittenden
- BSD license. It is no longer under active development (last updated in 2006). You should try libmemcached instead.
apr_memcache
- http://www.outoforder.cc/projects/libs/apr_memcache by Paul Querna
- Apache Software License version 2.0 (doesn't appear to be actively maintained since 2005)
memcacheclient
- http://code.jellycan.com/memcacheclient (cross-platform, but primary focus on Windows (last updated in 2008).
libketama
- http://www.last.fm/user/RJ/journal/2007/04/10/rz_libketama (the original consistent hashing algorithm from last.fm)
PHP
Comparison of PECL/memcache and PECL/memcached
PECL/memcached
- http://pecl.php.net/package/memcached (wraps libmemcached)
- pear install pecl/memcached
- Announcement: http://gravitonic.com/2009/01/new-memcached-extension
PECL/memcache
PHP libmemcached
- http://github.com/kajidai/php-libmemcached/tree/master (wraps libmemcached)
Java
spymemcached
- http://www.couchbase.org/code/couchbase/java
- An improved Java API maintained by Matt Ingenthron and others at Couchbase.
- Aggressively optimised, ability to run async, supports binary protocol, support Membase and Couchbase features, etc. See site for details.
Java memcached client
- http://www.whalin.com/memcached
- A Java API is maintained by Greg Whalin from Meetup.com.
More Java memcached clients
- http://code.google.com/p/javamemcachedclient
- http://code.google.com/p/memcache-client-forjava
- http://code.google.com/p/xmemcached
Integrations
MySQL
MySQL user data functions for memcached
MySQL Engine
- no longer developed
PostgreSQL
pgmemcache
- http://pgfoundry.org/projects/pgmemcache The pgmemcache project allows you to access memcache servers from Postgresql Stored Procedures and Triggers.