Memcached概念、作用、运行原理、特性、不足简单梳理(1)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Memcached概念、作用、运行原理、特性、不足简单梳理(1),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2618字,纯文字阅读大概需要4分钟。
内容图文
大家可能对memcached这种产品早有了解,或者已经应用在自己的网站中了,但是也有一些朋友从来都没有听说过或者使用过。
这都没什么关系,本文旨在从各个角度综合的介绍这种产品,尽量深入浅出,如果能对您现在或以后的工作有所帮助,笔者将感到无比荣幸。
Memcached概念、作用、运行原理、特性、不足简单梳理(1)
Memcached下载安装、NET对Memcached进行CRUD操作(2)
Memcached存Session数据、访问安全性、使用场景总结(3)
官方解释如下:
What is Memcached? Free & open source, high-performance, distributed memory object caching system, generic in nature, but intended for use in speeding up dynamic web applications by alleviating database load. Memcached is an in-memory key-value store for small chunks of arbitrary data (strings, objects) from results of database calls, API calls, or page rendering. Memcached is simple yet powerful. Its simple design promotes quick deployment, ease of development, and solves many problems facing large data caches. Its API is available for most popular languages.
Memcached 是一个开源、高性能、分布式内存对象缓存系统。
官网地址:http://memcached.org/
下载地址:http://www.memcached.org/files/memcached-1.4.25.tar.gz
Memcache和Memcached到底有什么区别?
Memcache 是 danga.com 的一个项目,最早是为 LiveJournal 服务的,目前全世界不少人使用这个缓存项目来构建自己大负载的网站,来分担数据库的压力。
Memcached 是一个开源、高性能、分布式内存对象缓存系统
Memcache 是这个项目的名称,而 memcached 是它服务器端的主程序文件名
Memcached 是以守护程序方式运行于一个或多个服务器中,随时接受客户端的连接操作。客户端首先与 Memcached 服务建立连接,然后存取对象。保存在 Memcached 中的对象是放置在内存中的,而不是在硬盘上。
Memcached 进程运行之后,会预申请一块较大的内存空间,自己进行管理,用完之后再申请,不是每次需要的时候去向操作系统申请。Memcached将对象保存在一个巨大的Hash表中,它还使用NewHash算法来管理Hash表,从而获得进一步的性能提升。所以当分配给Memcached的内存足够大的时候,Memcached的时间消耗基本上只是网络Socket连接了。
总之,Memcached用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。
Memcached处理的原子是每一个(key,value)对(以下简称kv对),key会通过一个hash算法转化成hash-key,便于查找、对比以及做到尽可能的散列。同时,memcached用的是一个二级散列,通过一张大hash表来维护。
Memcached有两个核心组件组成:服务端(Server)和客户端(Client),在一个memcached的查询中,Client先通过计算key的hash值来确定kv对所处在的Server位置。当Server确定后,客户端就会发送一个查询请求给对应的Server,让它来查找确切的数据。因为这之间没有交互以及多播协议,所以 memcached交互带给网络的影响是最小化的。
1、开源
开源地址:https://github.com/memcached/memcached/wiki
2、高性能
无论哪一种数据库(oracle,mssql,mysql,db2……),再怎么优化,最终也避不开与慢速的硬盘进行数据交换,但往往一旦涉及到了硬盘的io操作,存取性能就会急剧下降。而Memcached的全部操作自始至终都是在内存中进行的,所以存取数据的效率非常高。
当然,大型网站对于数据库的操作都会做优化(读写分离,按照业务分库分表)。
3、分布式
分布式系统网上比较专业的解释是:一种计算机硬件的配置方式和相应的功能配置方式。它是一种多处理器的计算机系统,各处理器通过互连网络构成统一的系统。系统采用分布式计算结构,即把原来系统内中央处理器处理的任务分散给相应的处理器,实现不同功能的各个处理器相互协调,共享系统的外设与软件。这样就加快了系统的处理速度,简化了主机的逻辑结构。
Memcache的分布式特性主要表现是:Memcached服务器端可以安装在任意数量的server上,提供并行存储和计算的能力;Memcached客户端和服务器端可以单独安装在任何独立server上。
1、数据是保存在内存当中的,一旦服务进程重启,数据会全部丢失
对策:可以采取更改Memcached的源代码,增加定期写入硬盘的功能
2、Memcached以root权限运行,而且Memcached本身没有任何权限管理和认证功能,安 全性不足
对策:可以将Memcached服务绑定在内网IP上,通过防火墙进行防护
原文:http://www.cnblogs.com/xiaobaxiing/p/6539970.html
内容总结
以上是互联网集市为您收集整理的Memcached概念、作用、运行原理、特性、不足简单梳理(1)全部内容,希望文章能够帮你解决Memcached概念、作用、运行原理、特性、不足简单梳理(1)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。