当前位置:   article > 正文

高性能对象存储Memcached原理与部署_高性能内存对象缓存memcached原理与部署

高性能内存对象缓存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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/神奇cpp/article/detail/866708
推荐阅读
相关标签
  

闽ICP备14008679号