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.

http://memcached.org/about

About Memcached

memcached is a high-performance, distributed memory object caching system, generic in nature, but originally intended for use in speeding up dynamic web applications by alleviating database load.

You can think of it as a short-term memory for your applications.

What it Does

memcached allows you to take memory from parts of your system where you have more than you need and make it accessible to areas where you have less than you need.

memcached also allows you to make better use of your memory. If you consider the diagram to the right, you can see two deployment scenarios:

  1. Each node is completely independent (top).
  2. Each node can make use of memory from other nodes (bottom).

The first scenario illustrates the classic deployment strategy, however you'll find that it's both wasteful in the sense that the total cache size is a fraction of the actual capacity of your web farm, but also in the amount of effort required to keep the cache consistent across all of those nodes.

With memcached, you can see that all of the servers are looking into the same virtual pool of memory. This means that a given item is always stored and always retrieved from the same location in your entire web cluster.

Also, as the demand for your application grows to the point where you need to have more servers, it generally also grows in terms of the data that must be regularly accessed. A deployment strategy where these two aspects of your system scale together just makes sense.

The illustration to the right only shows two web servers for simplicity, but the property remains the same as the number increases. If you had fifty web servers, you'd still have a usable cache size of 64MB in the first example, but in the second, you'd have 3.2GB of usable cache.

Of course, you aren't required to use your web server's memory for cache. Many memcached users have dedicated machines that are built to only be memcached servers.

Origin

Memcached was originally developed by Brad Fitzpatrick for LiveJournal in 2003.

最新文章

  1. 针对github权限导致hexo部署失败的解决方案
  2. Gson解析json字符串
  3. Leetcode: Battleships in a Board
  4. 解放双手:如何在本地调试远程服务器上的Node代码
  5. E2 2014.08.05 更新日志
  6. post请求时2种传参方式
  7. cmake的四个命令:add_compile_options、add_definitions、target_compile_definitions、build_command
  8. Linux常用命令(精选)
  9. 错误代码: 1381 You are not using binary logging
  10. windows下cmd命令行上传代码到github的指定库
  11. 动态dp学习笔记
  12. node.js 模块的分类
  13. golang 修改数组中结构体对象的值的坑
  14. Beanstalkd消息队列 -- php类Pheanstalk使用
  15. JPA问题汇总
  16. BZOJ2085 : [Poi2010]Hamsters
  17. 【专题】字符串专题小结(AC自动机 + 后缀自动机)
  18. cutadapt 的安装与使用
  19. eclipse启动tomcat出现内存溢出错误 java.lang.OutOfMemoryError: PermGen space
  20. 让图片左右缓慢移动的MoveView

热门文章

  1. 【Soul网关探秘】http数据同步-Admin通知前处理
  2. Mybatis总结(一)
  3. C++旋转数组(三种解法详解)
  4. 一键配置 github 可用的 hosts
  5. LDAP 简介
  6. 4、剑指offer——从尾到头打印链表java实现
  7. Linux 从4.12内核版本开始移除了 tcp_tw_recycle 配置。 tcp_max_tw_buckets TIME-WAIT 稳定值
  8. 你可能会问,为什么不直接进入 CLOSED 状态,而要停留在 TIME_WAIT 这个状态?
  9. Python 2.x 和 Python 3.x
  10. 请你尽量全面的说一个对象在 JVM 内存中的结构?