Memcache[1]基本介绍

来源:互联网 发布:淘宝发布产品产品规格 编辑:程序博客网 时间:2024/05/09 18:03

■ memcached基本概念
Memcached是danga的一个项目,最早是LiveJournal 服务的,最初为了加速 LiveJournal 访问速度而开发的,后来被很多大型的网站采用。 官方网站: www.danga.com 和 memcached.org
Memcached是一个高性能的分布式的内存对象缓存系统,目前全世界不少人使用这个缓存项目来构建自己大负载的网站,来分担数据库的压力,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等。简单的说就是将数据调用到内存中,然后从内存中读取,从而大大提高读取速度。(注: 摘自百度全科)

■ memcached特点
1. 协议简单
2. 基于libevent的事件处理
3. 内置内存存储方式
4. memcached不互相通信的分布式
5. 使用简单的基于文本行的协议

■ 事件处理
libevent是个程序库,它将Linux的epoll、BSD类操作系统的kqueue等事件处理功能封装成统一的接口。即使对服务器的连接数增加,也能发挥O(1)的性能。memcached使用这个libevent库,因此能在Linux、BSD、Solaris等操作系统上发挥其高性能。关于事件处理这里就不再详细介绍,可以参考Dan Kegel的The C10K Problem。

■ 存储方式
为了提高性能,memcached中保存的数据都存储在memcached内置的内存存储空间中。由于数据仅存在于内存中,因此重启memcached、重启操作系统会导致全部数据消失。另外,内容容量达到指定值之后,就基于LRU(Least Recently Used)算法自动删除不使用的缓存。memcached本身是为缓存而设计的服务器,因此并没有过多考虑数据的永久性问题。

■ 通信分布式
memcached尽管是“分布式”缓存服务器,但服务器端并没有分布式功能。各个memcached不会互相通信以共享信息。那么,怎样进行分布式呢?这完全取决于客户端的实现。

请大家先看一个问题,这个问题在大并发,高负载的网站中必须
考虑!大家思考如何让速度更快。

三种方案的比较
1. 数据库 2. 页面静态化 3. memcached 缓存技术

简单的说: memcached就是在内存中维护一张巨大的hash表,通过自己的一套算法来维护数据的操作,这个算法比较复杂,这里我们只做简单的介绍,对我们PHP程序员而言,重点
掌握如何在项目如何使Memcached技术.

内存的速度是最快的,mem的主要目的就是提速,没有别的目的。
那有没有比内存更快的呢?当然是有的那就是CPU的寄存器。超贵

==============================
memcache可以存放什么东西

除了资源类型 其他都可以存放

四种标量类型:
string(字符串)
integer(整型)
float(浮点型,也作 double )
boolean(布尔型)

两种复合类型:
array(数组)
object(对象)

两种特殊类型:
resource(资源)
NULL(空)

0 0