高性能对象存储Memcached原理与部署

Memcached概述

一套开源的高性能分布式内存对象缓存系统(中间件)
所有的数据都存储在内存中
支持任意存储类型的数据
提高网站的访问速度
在这里插入图片描述

存储方式与数据过期方式

数据存储方式:Slab Allocation
按组分配内存,每次先分配一个Slab,相当于一个大小为1M的页,然后在1M的空间里根据数据划分大小相同的Chunk。
数据过期方式:
LRU:数据空间不足时,会根据LRU的情况淘汰最近最少使用的记录。
Laxzy Expiration:惰性过期,是指使用get时查看记录时间,从而检查记录是否已经过期。

Memcached缓存机制

当程序写入缓存数据请求时,Memcached时API接口将Key输入路由算法模块路由到集群中一台服务,之后由API接口与服务器进行通信,完成一次分布式缓存写入。
在这里插入图片描述

当 Web 客户端发出请求到 Web 服务器的应用程序时,应用程序会调用 Memcached API
客户端程序库接口去连接 Memcached 服务器查询数据。
如果 Web 客户端所请求的数据在Memcached 服务端中已经缓存,则 Memcached 服务端会将数据返回给 Web 客户端;否则,会将 Web 客户端请求发送至 MySQL 数据库,由数据库查询并返回请求的数据给 Memcached 以及Web 客户端,与此同时 Memcached 服务器也会将数据进行保存,方便下次用户请求使用。

Memcached分布式

要依赖于Memcached的客户端来实现
多个Memcached服务器是独立的
分布式数据如何存储是由路由算法所决定
在这里插入图片描述

Memcached路由算法

求余数hash算法(随机算法):
先用Key做hash运算得到一个整数,再去做hash算法,根据余数进行路由,这种算法适合大多数据需求,但不适合用在动态变化的环境中。
一致性hash算法(均等算法):
按照hash算法把对应的key通过一定的hash算法处理后映射形成一个首尾相接闭合循环,然后通过使用与对象存储一样的hash算法将机器也映射到环中,顺时针方向计算将所有对象存储到离自己最近的机器中。
在这里插入图片描述

具体实现步骤可见

链接:http://note.youdao.com/noteshare?id=12ec140e2e9bd414ace487e0784286b9&sub=4A16ECB66EB34DFF9CB322F3BA3B7DB1

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值