关于memcached

Memcached的原理和使用介绍

介绍:

Memcached是国外社区网站LiveJournal的技术团队开发的高性能分布式内存缓存服务器。

使用目的:

memcached的一般使用目的就是缓存数据库查询结果,减少对数据库的访问次数,以提高动态web应用的速度,提高可扩展性。

memcached运行图:


memcached介绍:

谁在使用memcached:

Yahoo,FaceBook,Twitter,MIXI以及wiki百科等国外公司。

国内公司有:

搜狐微博,人人网,赶集网,新浪网等。

 

与Memcached相似的产品都有哪些:

tokyo Cabinet  日本鬼子的产品

 

MemcacheDB 新浪开发的产品

 

sohutw—memcached 搜狐微博的产品

 

BeansDB  豆瓣的产品

 

tmcached 黑夜路人的产品

 

memcached的主要特点:

基于CS架构,协议简单。

基于libEvent的事件处理。

自主内存存储处理。

基于客户端的memcached分布式。

 

数据存储方式:

1,Slab Allocation

Slab Allocation的方法比较简单,就是按照预先规定的大小,将申请的内存分割成特定大小的块,已解决内存碎片的问题。

其原理就是 将分配的内存分割成各种尺寸的块(chunk),然后把相同尺寸的块组成组(chunk 集合)。



 术语表:

Page:分配给slab的内存空间,默认是1Mb,分配给slab之后根据slab的大小切分chunk。

chunk:用于缓存数据的空间。

slab class:chunk的组。很多大小相同的slab组成的chunk。

 

Slab Allocation的缺点:

由于chunk的大小是固定的,如果128k的chunk存放100k的数据,那么28k的空间就浪费了。

 

数据过期的方式:

1,lazy Expiration:memcached不会监视记录是否过期,而是在get数据的时候检查数据的时间戳,看是否过期。因此memcached不会再监视数据是否过期上面耽误cpu的时间。

2,LRU 。Least Recently Used,最近最少使用的空间会在空间不足的情况下被释放,让给新数据。

 

基于客户端的memcached分布式:



 根据key值获得key在内存中的地址,*Key++%totalServer = n,n为服务器集群代号为n的机器,把key值存放在此台机器上。从此写入和读取都从这台机器上操作。


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值