为了加快文件访问速度且提供多个使用者、需要在内存中建立内存缓存数据的管理减小读写磁盘的次数及保证数据的更新、因为需要使用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. 转 在shell脚本中使用expect实现scp传输问题

    1.安装expect expect用于shell脚本中自动交互,其是基于tcl编程语言的工具.所以安装expect首先安装tcl.本文中使用的是expect5.45和tcl8.6.6. 安装tcl [ ...

  2. JVM-GC日志分析

    程序运行时配置如下参数: -Xms20M -Xmx20M -Xmn10M -verbose:gc -XX:+PrintGCDetails -XX:SurvivorRatio= -XX:+PrintGC ...

  3. WebForm随笔

    一般处理程序中获取页面所传的值:int id = Convert.ToInt32(context.Request["id"]); 后台获取页面所传的值:int id = Conve ...

  4. VS局域网断点调试设置

    1.电脑文档文件夹下\IISExpress\config文件内找到applicationhost.config文件编辑 找到<sites>节点 找到你要编辑的site节点 在<bin ...

  5. 在PaaS上开发Web、移动应用(2)

    在PaaS上开发Web.移动应用(2) PaaS学习笔记目录 PaaS基础学习(1) 在PaaS上开发Web.移动应用(2) PaaS优点与限制(3) 6. 巨型代码,是指持续不断地向一个应用程序添加 ...

  6. sql中的exsits和not exsits

    select * from table where exsits(sql语句) :  括号中sql语句有数据则返回这些相关id的数据集 select * from table where not ex ...

  7. vue+element ui项目总结点(二)table合计栏目,按照起始年份--截止年份 插入数据并向后追加数据以最后一条年份+1

    1.oninput 事件在用户输入时触发; <template> <div class="test_box"> <p>hell,你好</p ...

  8. Android学习总结(十三) ———— ListView 简单用法

    一.ListView的基本概念 在Android所有常用的原生控件当中,用法最复杂的应该就是ListView了,它专门用于处理那种内容元素很多,手机屏幕无法展示出所有内容的情况.ListView可以使 ...

  9. 洛谷 P2916 [USACO08NOV]为母牛欢呼Cheering up the Cows

    题目描述 Farmer John has grown so lazy that he no longer wants to continue maintaining the cow paths tha ...

  10. POJ 1998 Cube Stacking

    Description Farmer John and Betsy are playing a game with N (1 <= N <= 30,000)identical cubes ...