memcached诞生的历史背景
为了加快文件访问速度且提供多个使用者、需要在内存中建立内存缓存数据的管理减小读写磁盘的次数及保证数据的更新、因为需要使用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、memcached的特点:
a、全内存运转
b、哈希方式存储
c、简单文本协议进行数据通信
d、只操作字符型数据
e、其它类型数据由应用解释,序列化以及反序列化
f、集群也由应用进行控制,采用一致性散列(哈希)算法
3、memcached的缺点:
a、纯内存操作,关机后数据全部丢失
b、保存字节数据,数据类型贫乏
c、LRU算法导致数据不可控的丢失
d、一致性处理简单
e、应用场景有限,难以被看成是完整的数据库产品
f、单个缓存限制,默认最大的为1M,当单次存储的数据超过1M时,会存储不到缓存中
当存储的数据大于1M,可以考虑在客户端将数据拆分,分别进行存储
总结: memcached的优缺点非常明了,我们在应用中要合理的应用memcache的这些特性,当我们注意到这些问题的时候就能在项目中发挥它的巨大作用,让我们的用户能够有更好的用户体验。
转载请注明:XAMPP中文组官网 » Memcached特性及优缺点