赞
踩
一套开源的高性能分布式内存对象缓存系统(中间件)
所有的数据都存储在内存中
支持任意存储类型的数据
提高网站的访问速度
数据存储方式:Slab Allocation
按组分配内存,每次先分配一个Slab,相当于一个大小为1M的页,然后在1M的空间里根据数据划分大小相同的Chunk。
数据过期方式:
LRU:数据空间不足时,会根据LRU的情况淘汰最近最少使用的记录。
Laxzy Expiration:惰性过期,是指使用get时查看记录时间,从而检查记录是否已经过期。
当程序写入缓存数据请求时,Memcached时API接口将Key输入路由算法模块路由到集群中一台服务,之后由API接口与服务器进行通信,完成一次分布式缓存写入。
当 Web 客户端发出请求到 Web 服务器的应用程序时,应用程序会调用 Memcached API
客户端程序库接口去连接 Memcached 服务器查询数据。
如果 Web 客户端所请求的数据在Memcached 服务端中已经缓存,则 Memcached 服务端会将数据返回给 Web 客户端;否则,会将 Web 客户端请求发送至 MySQL 数据库,由数据库查询并返回请求的数据给 Memcached 以及Web 客户端,与此同时 Memcached 服务器也会将数据进行保存,方便下次用户请求使用。
要依赖于Memcached的客户端来实现
多个Memcached服务器是独立的
分布式数据如何存储是由路由算法所决定
求余数hash算法(随机算法):
先用Key做hash运算得到一个整数,再去做hash算法,根据余数进行路由,这种算法适合大多数据需求,但不适合用在动态变化的环境中。
一致性hash算法(均等算法):
按照hash算法把对应的key通过一定的hash算法处理后映射形成一个首尾相接闭合循环,然后通过使用与对象存储一样的hash算法将机器也映射到环中,顺时针方向计算将所有对象存储到离自己最近的机器中。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。