官网https://memcached.org/
GitHub 地址
一、Memcached
一种分布式内存对象缓存系统
1、什么是Memcached
什么是Memcached?
免费和开源,高性能,分布式内存对象缓存系统,本质上是通用的,但旨在通过减轻数据库负载来加速动态web应用程序。
Memcached是一个内存中的键值存储,用于存储来自数据库调用、API调用或页面呈现结果的小块任意数据(字符串、对象)。
简单但功能强大。 其简单的设计促进了快速部署,易于开发,并解决了大型数据缓存面临的许多问题。
它的API可用于大多数流行的语言。
其守护进程(daemon )是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信。
2、优点
简单而强大。其简单的设计促进了快速部署、易于开发,并解决了大型数据缓存面临的许多问题。它的API可用于大多数流行语言。
Memcached支持许多平台:Linux、FreeBSD、Solaris、Mac OS,也可以安装在Windows上。
- 简单的协议
- 内置内存存储方式
- memcached不互相通信的分布式
- 基于libevent的事件处理
Libevent 是一个用C语言编写的、轻量级的开源高性能事件通知库
3、orgin
Memcached最初是由Brad Fitzpatrick于2003年为LiveJournal开发的。
Memcached是以LiveJournal旗下Danga Interactive公司的Brad Fitzpatric为首开发的一款软件。现在已成为mixi、hatena、Facebook、Vox、LiveJournal等众多服务中提高Web应用扩展性的重要因素。
二、干什么怎么干
2.1、最初的目的
通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的速度、提高可扩展性。
最初用于通过减轻数据库负载
来加快动态web应用程序的速度。
就是做缓存的功能也是Memcached最初的目的
2.2、官网接受
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.
memcached允许您从系统中超出需要的部分获取内存,并使其可以访问低于需要的部分。
memcached还允许您更好地利用内存。
每个节点都是完全独立的(顶部)。
每个节点都可以使用其他节点的内存(底部)。
第一个场景演示了经典的部署策略,但是您会发现,这既浪费了缓存总大小只是web场实际容量的一小部分,也浪费了在所有这些节点上保持缓存一致所需的工作量。
使用memcached,可以看到所有服务器都在查看同一个虚拟内存池。这意味着给定的项目总是存储在整个web集群中的同一位置,并且总是从该位置检索。
此外,随着对应用程序的需求增长到需要更多服务器的程度,它通常也会在必须定期访问的数据方面增长。在部署策略中,系统的这两个方面可以一起扩展。
为了简单起见,右侧的插图仅显示了两个web服务器,但随着数量的增加,属性保持不变。如果您有50台web服务器,那么在第一个示例中,可用缓存大小仍为64MB,但在第二个示例中则为3.2GB。
当然,您不需要使用web服务器的内存进行缓存。许多memcached用户拥有专门的机器,这些机器只能作为memcachedServer使用。
三、怎么用
- java好像没人用这个就先不做了
参考文章
个人笔记,不同意见,望有交流
直接可以点击跳转连接