memcached架构及缓存策略

栏目: 数据库 · 发布时间: 6年前

内容简介:----------------------------------------概述----------------------------------------Memcached是一套高性能分布式内存对象缓存服务器它将所有的数据统统保存在内存中,在内存中会维护一个巨大的hash表,支持任意存储类型的数据,很多网站通过Memcached提高网站的访问速度,尤其是对于大型的需要频繁访问的网站,减少查询效率,提高查询速度

----------------------------------------概述----------------------------------------

Memcached是一套高性能分布式内存对象缓存服务器

它将所有的数据统统保存在内存中,在内存中会维护一个巨大的hash表,支持任意存储类型的数据,很多网站通过 Memcached 提高网站的访问速度,尤其是对于大型的需要频繁访问的网站,减少查询效率,提高查询速度

----------------------------------------架构----------------------------------------

memcached架构及缓存策略

C/S架构:

服务端:Memcached服务端,通过 C语言 编写而成

客户端:Memcached API客户端,可以通过任何语言编写,如 php 、py等

特点:

1.为了提高性能,memcached中保存的数据都存储在memcached内置的内存空间中:由于数据仅存在于内存中,因此重启memcached、重启操作系统会导致全部数据消失

2.基于libevent的事件处理:libevent是个程序库,它将 Linux 的epoll、BSD类操作系统的kqueue等事件处理功能封装成统一的接口;即使对服务器的连接数增加,也能发挥O(1)的性能;memcached使用这个libevent库,因此能在Linux、BSD、Solaris等操作系统上发挥其高性能

3.简单key/value存储:服务器不关心数据本身的意义及结构,只要是可序列化数据即可;存储项由“键、过期时间、可选的标志及数据”四个部分组成

4.功能的实现一半依赖于客户端,一半基于服务器端:客户负责发送存储项至服务器端、从服务端获取数据以及无法连接至服务器时采用相应的动作;服务端负责接收、存储数据,并负责数据项的超时过期

----------------------------------------缓存策略----------------------------------------

Slab Allocator机制基本原理:

按照预先规定的大小,将分配的内存分割成特定长度的块chunk,并把尺寸相同的块分成组,以完全解决内存碎片问题。但由于分配的是特定长度的内存,因此无法有效利用分配的内存。比如将100字节的数据缓存到128字节的chunk中,剩余的28字节就浪费了;按照预先规定的大小,将分配的内存分割成特定长度的内存块chunk,再把尺寸相同的内存块分层组chunk集合,这些内存不会释放,可以反复利用

memcached架构及缓存策略 Slab Allocation机制角色:

1.chunk为固定大小的内存空间,默认为96Byte

2.page对应实际的物理空间,1个page为1M

3.同样大小的chunk集合又称为slab

memcached架构及缓存策略 客户端选择slab机制:

下面说明memcached如何针对客户端发送的数据选择slab并缓存到chunk中;memcached根据收到的数据的大小,选择最适合数据大小的slab; memcached中保存着slab内空闲chunk的列表,根据该列表选择chunk, 然后将数据缓存于其中

memcached架构及缓存策略 内存释放机制:

Laxzy Expiration:

Memcached每个被存取的对象都有唯一的标识符key,存取操作均通过key进行,例如可以把后端数据库中的select操作提取出来,然后对相应的 SQL 进行hash计算得出key,然后以这个key在memcached中查找数据,如果数据不存在,说明其尚未被写入缓存中,并设置一个失效时间(比如1小时),在失效时间内的数据都是从缓存中提取,这样就有效地减少了数据库的压力

Least Recently Used(LRU):

删除“最近最少使用”的记录的机制;当memcached的内存空间不足时,从最近未被使用的记录中搜索,并将其空间分配给新的记录;-M 参数禁止LRU功能,内存用尽时,memcached会返回错误,不建议使用memcached -M -m 1024


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

The Art of Computer Programming, Volumes 1-3 Boxed Set

The Art of Computer Programming, Volumes 1-3 Boxed Set

Donald E. Knuth / Addison-Wesley Professional / 1998-10-15 / USD 199.99

This multivolume work is widely recognized as the definitive description of classical computer science. The first three volumes have for decades been an invaluable resource in programming theory and p......一起来看看 《The Art of Computer Programming, Volumes 1-3 Boxed Set》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码