为了加快文件访问速度且提供多个使用者、需要在内存中建立内存缓存数据的管理减小读写磁盘的次数及保证数据的更新、因为需要使用cache缓存。

 
1、Memcached 主要特性
a、数据仅存在于内存中,宕机或重启数据将全部失效
b、内容数据达到启动时设定内存指定值后、基于LRU算法删除缓存,LAZY模式、可指定最大内存用量。
c、实际瓶颈在于网络连接、占应较少的CPU资源
d、服务器端无分布式功能(C开发)、取决于客户端的实现(php、C#、java)、可布署多台服务器,访问时做个均衡策略如根据IP分配连接负载。
e、存储的节点数据键名250字节、键值限制在1MB、只适合普通字符串、作为小规模的数据分布式平台是十分有效果.
f、32位机器单进程使用最大内存2G、可分多个端口开启多进程支持、64位机器可认为无上限
 
2、数据直接放到内存需要解决的问题:
a、不能进行分布式扩展
b、缺乏一个有效的信息过期机制
c、多个并发同时使用共享使用失效机制
d、文件fd无法异步法、无法加入异步IO高速并发访问体系中
 
3、分布式集群搭建
a、客户端通过memcached私有通信协议与守护进程通信
b、nginx通过upstream协议通信、访问服务器未命中则只能访问memcached客户端获取数据并将数据主动写入memcached服务器。
c、缺乏认证以及安全管制、放在防火墙后
d、客户端通过一致性hash构建分布式cache系统、同时针对机器及缓存数据的key做hash、利用虚拟结点减小最小数据迁移。
 
 
4、如何添加与删除条目
a、通过set/add/replace添加数据及设定条目失效时间及数据长度
b、delete删除
c、信息访问只提供简单的缓存KV类型数据结构
d、可利用flush_all清空所有键值、标记所有item失效、内存可复用。
 
5、服务器扩容及备灾
a、服务器可随时扩容、需支持动态修改访问策略
b、服务器宕机则缓存数据全部失败、无法备灾
 
6、内存效率
采用 Slab Allocator的机制分配、管理内存。按照增加因数按照预先规定的大小、将分配的总内存分割成特定的长度块。
a、根据最小空间损失原则、分配最接近的slab空间
b、执行get才检查时间戳、避免监控耗费cpu资源
c、新对象加入还是找最接近slab空间、而不能使用其它slab,只能重新分配page,内存浪费严重。
d、内存不足时则启动LRU删除记录、可能删除未过期记录,缓存利用率下降。
 
几个术语:
Page:分配给Slab的内存空间,默认是1MB。分配给Slab之后根据slab的大小切分成chunk。
Chunk:用于缓存记录的内存空间。
Slab Class:特定大小的chunk的组。
Growth Factor:增长因数,默认为1.25
 

Memcached特性及优缺点的更多相关文章

  1. PHP文件缓存与memcached缓存 相比 优缺点是什么呢【总结】

    如果不考虑其他任何问题,只比较速度的话,那肯定是mem快,但他们各有优缺点.文件缓存优点:1.由于现在的硬盘都非常大,所有如果是大数据的时候,放硬盘里就比较合适,比如做一个cms网站,网站里有10万篇 ...

  2. [js高手之路]构造函数的基本特性与优缺点

    上文,通过基本的对象创建问题了解了构造函数,本文,我们接着上文继续了解构造函数的基本特性,以及优缺点. 每个对象上面都有一个constructor属性( 严格意义上来说,是原型上的,对象是通过查找到原 ...

  3. 面试题常考&必考之--js闭包特性和优缺点 (外加小例子)

    当内部函数被返回到外部并保存时,一定会产生闭包.闭包会产生原来的作用域链,不释放. 闭包,可以理解为,写一个函数,然后产生闭包的这种现象. 概念: 基础: 主要是:add    reduce  被返回 ...

  4. Memcached概念、作用、运行原理、特性、不足简单梳理(1)

    大家可能对memcached这种产品早有了解,或者已经应用在自己的网站中了,但是也有一些朋友从来都没有听说过或者使用过.这都没什么关系,本文旨在从各个角度综合的介绍这种产品,尽量深入浅出,如果能对您现 ...

  5. Linux实战教学笔记32:企业级Memcached服务应用实践

    一, Memcached介绍 1.1 Memcached与常见同类软件对比 (1)Memcached是什么? Memcached是一个开源的,支持高性能,高并发的分布式内存缓存系统,由C语言编写,总共 ...

  6. Memcached原理

    Memcached是一套高性能的.分布式内存对象缓存系统.它由C写成,以Key/Value的方式将数据储存在内存中. 一.Memcached特性 Memcached作为高速运行的分布式缓存服务器,具有 ...

  7. (转)iOS Wow体验 - 第五章 - 利用iOS技术特性打造最佳体验

    本文是<iOS Wow Factor:Apps and UX Design Techniques for iPhone and iPad>第五章译文精选,其余章节将陆续放出.上一篇:Wow ...

  8. Memcached的基础梳理

    1 .Memcached 概念 官方解释如下: What is Memcached? Free & open source, high-performance, distributed mem ...

  9. Session会话保持机制的原理与Tomcat Session共享的几种实现方式(Session Cluster、memcached+MSM)

    一.Session的定义 在计算机科学中,特别是在网络中,session是两个或更多个通信设备之间或计算机和用户之间的临时和交互式信息交换.session在某个时间点建立,然后在之后的某一时间点拆除. ...

随机推荐

  1. python基本的数据类型

    一.python的基本数据类型 int => 整数,主要用来进行数学运算 str ==> 字符串 可以用来保存少量数据并进行相应操作 bool ==> 判断真假,True,False ...

  2. Dubbo端口占用错误信息

    SEVERE: Exception sending context initialized event to listener instance of class com.common.SysCont ...

  3. Bridges Gym - 100712H  无向图的边双连通分量,Tarjan缩点

    http://codeforces.com/gym/100712/attachments 题意是给定一个无向图,要求添加一条边,使得最后剩下的桥的数量最小. 注意到在环中加边是无意义的. 那么先把环都 ...

  4. 谈PHP中的钩子

    钩子,英文为hooks.在程序中应用相当广泛,但是究竟什么是钩子呢?本人介绍一下目前本人对钩子的理解和相关心得. 假如有这么一段程序流: function fun(){ funA(); funB(); ...

  5. vuex2 10分钟快速入门

    因为太简单了,我直接就贴代码了~ #建立store.js import Vue from 'vue'; import Vuex from 'vuex'; Vue.use(Vuex) export de ...

  6. Web 前端开发代码规范(基础)

    一. 引言 对于一个多人团队来说,制定一个统一的规范是必要的,因为个性化的东西无法产生良好的聚合效果,规范化可以提高编码工作效率,使代码保持统一的风格,以便于代码整合和后期维护. 二. HTML/CS ...

  7. 【Web应用-网络连接】关于 Azure Web 应用 4 分钟空闲连接的限制

    Azure Web 应用后台在处理耗时较长的请求时,并且在此期间,客户端和 Azure Web 应用没有数据交互,即 TCP 连接一直处于空闲状态,此种情况超过 4 分钟后,Azure Web 应用会 ...

  8. java字符串拼接技巧(StringBuilder使用技巧)

    在平时的开发中,我们可能会遇到需要拼接如下格式的字符串(至少我是遇到了很多次): 1,2,3,4,5,6,7,8,9,10,11,12,12,12,12,34,234,2134,1234,1324,1 ...

  9. CF 1119F Niyaz and Small Degrees

    打VP的时候由于CXR和XRY切题太快了导致我只能去写后面的题了 然而VP的时候大概还有一小时时想出了\(O(n^2\log n)\)的暴力,然后过了二十分钟才想到删点的优化 结果细节很多当然是写不出 ...

  10. QT 图形视图框架

    https://blog.csdn.net/qq769651718/article/details/79357936 使用QPushButton.QLabel.QCheckBox等构成GUI的控件或自 ...