Memcached的基础梳理


1 、Memcached 概念

官方解释如下:

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 是一个开源、高性能、分布式内存对象缓存系统。

Memcache和Memcached到底有什么区别?

Memcache 是 danga.com 的一个项目,最早是为 LiveJournal 服务的,目前全世界不少人使用这个缓存项目来构建自己大负载的网站,来分担数据库的压力。

Memcached 是一个开源、高性能、分布式内存对象缓存系统

Memcache 是这个项目的名称,而 memcached 是它服务器端的主程序文件名

2、 Memcached 作用

Memcached 是以守护程序方式运行于一个或多个服务器中,随时接受客户端的连接操作。客户端首先与 Memcached 服务建立连接,然后存取对象。保存在 Memcached 中的对象是放置在内存中的,而不是在硬盘上。

Memcached 进程运行之后,会预申请一块较大的内存空间,自己进行管理,用完之后再申请,不是每次需要的时候去向操作系统申请。Memcached将对象保存在一个巨 大的Hash表中,它还使用NewHash算法来管理Hash表,从而获得进一步的性能提升。所以当分配给Memcached的内存足够大的时 候,Memcached的时间消耗基本上只是网络Socket连接了。

总之,Memcached用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。

3、 Memcached 运行原理

Memcached处理的原子是每一个(key,value)对(以下简称kv对),key会通过一个hash算法转化成hash-key,便于查找、对比以及做到尽可能的散列。同时,memcached用的是一个二级散列,通过一张大hash表来维护。

Memcached有两个核心组件组成:服务端(Server)和客户端(Client),在一个memcached的查询中,Client先通 过计算key的hash值来确定kv对所处在的Server位置。当Server确定后,客户端就会发送一个查询请求给对应的Server,让它来查找确 切的数据。因为这之间没有交互以及多播协议,所以 memcached交互带给网络的影响是最小化的。

4 、Memcached 特性

1、开源

开源地址:https://github.com/memcached/memcached/wiki

2、高性能

无论哪一种数据库(oracle,mssql,mysql,db2……),再怎么优化,最终也避不开与慢速的硬盘进行数据交换,但往往一旦涉及到 了硬盘的io操作,存取性能就会急剧下降。而Memcached的全部操作自始至终都是在内存中进行的,所以存取数据的效率非常高。

当然,大型网站对于数据库的操作都会做优化(读写分离,按照业务分库分表)。

3、分布式

分布式系统网上比较专业的解释是:一种计算机硬件的配置方式和相应的功能配置方式。它是一种多处理器的计算机系统,各处理器通过互连网络构成统一 的系统。系统采用分布式计算结构,即把原来系统内中央处理器处理的任务分散给相应的处理器,实现不同功能的各个处理器相互协调,共享系统的外设与软件。这 样就加快了系统的处理速度,简化了主机的逻辑结构。

Memcache的分布式特性主要表现是:Memcached服务器端可以安装在任意数量的server上,提供并行存储和计算的能力;Memcached客户端和服务器端可以单独安装在任何独立server上。

4、Memcached 不足之处

1、数据是保存在内存当中的,一旦服务进程重启,数据会全部丢失

对策:可以采取更改Memcached的源代码,增加定期写入硬盘的功能

2、Memcached以root权限运行,而且Memcached本身没有任何权限管理和认证功能,安 全性不足

对策:可以将Memcached服务绑定在内网IP上,通过防火墙进行防护

欢迎关注我的公众号(同步更新文章)DoNet技术分享平台

阅读原文

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/272570.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

html5 canvas 笔记五(合成与裁剪)

组合 Compositing globalCompositeOperation syntax: globalCompositeOperation type 注意:下面所有例子中,蓝色方块是先绘制的,即“已有的 canvas 内容”,红色圆形是后面绘制,即“新图形”。 source-over  这是默认…

一个能够编写、运行SQL查询并可视化结果的Web应用:SqlPad

SqlPad 是一个能够用于编写、运行SQL查询并可视化结果的Web应用。支持 PostgreSQL、MySQL 和 SQL Server。SqlPad 目前仅适合单个团队在内网中使用,它直接通过网络连接到数据库服务器,任何人可以在上面执行任意 SQL 语句。安装首先安装 Node.js.安装好No…

加拿大计算机语言学,加拿大语言学专业排名

语言学专业简言之就是学习语言,包括语言的结构、形成、历史、以及人们如何使用语言等等。下面出国留学网小编和大家聊一聊2018加拿大大学语言学专业排名,希望对同学们有所帮助,欢迎阅读。1麦吉尔大学 McGill University麦吉尔大学是全球大学校…

UIView之常用方法

UIView之常用方法 将一个视图添加为子视图,并使之在最上面显示 -(void)addSubView:(UIView *)view;将指定子视图移动到顶部 -(void)bringSubViewToFront:(UIView *)view;将指定之视图放到最下面 -(void)sendSubViewToBack:(UIView *)view;将指定视图添加到subviews数…

Web前端开发框架对比

近几年随着 jQuery、Ext 以及 CSS3 的发展,以 Bootstrap 为代表的前端开发框架如雨后春笋般挤入视野,可谓应接不暇。不论是桌面浏览器端还是移动端都涌现出很多优秀的框架,极大丰富了开发素材,也方便了大家的开发。这些框架各有特…

html5 筛子,html5摇骰子游戏

骰子游戏body#can;can;ctx;[];;;]]];window.οnlοad function(){can);ctx);ctx.clearRect(0,0,can.width,can.height);for(var i0;ictx.fillStyle orange;ctx.fillRect(diceCoordinates[i][0],diceCoordinates[i][1],40,40);draw(diceCoordinates[i],i,pointCoordinates[i]);…

关于xcode7编译旧项目崩溃-[UIApplication _runWithMainScene:transitionContext:completion:]

崩溃原因 crash:Assertion failure in -[UIApplication _runWithMainScene:transitionContext:completion:], /BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKit_Sim/UIKit-( *** Terminating app due to uncaught exception NSInternalInconsiste…

linq.js的用法

linq.js 详细介绍linq.js 是一个 JavaScript 实现的 LINQ。主要特性:实现所有 .NET 4.0 的方法complete lazy evaluationfull IntelliSense support for VisualStudiotwo versions - linq.js and jquery.linq.js (jQuery plugin)support Windows Script Hostbinding…

标准MD5加密算法

标准MD5加密算法: public class Md5 {public static String getMd5(String s) {char hexDigits[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,a, b, c, d, e, f };try {byte[] strTemp s.getBytes();MessageDigest mdTemp MessageDigest.getInstance("md5");mdTemp.update(s…

程序员大牛们的经典语录

1、很多问题不见得会出在你身上,但你亦需要想法解决问题,否则就会变成你的问题;2、懂得但策略的说不(不会这个准备累死吧,程序员);3、我考进事业单位,呵呵,没有传说中的那…

linux下创建的符号链接的权限

今天为shell脚本创建符号链接的时候突然发现的, 创建的符号链接文件的默认权限是 777, 而想要这个脚本可执行, 必须为真正的文件加上 x 权限才可以. 转载于:https://www.cnblogs.com/vanwoos/p/5075656.html

计算机osta试题,OSTA试题库.doc

OSTA试题库章节单选多选填空判断小计计算机基础知识64152020119Windows操作系统4810101583计算机网络应用4810151184Word文档处理51172120109Excel电子表格处理4515152095PowerPoint演示文稿制作5215112098多媒体技术4512102087合计35394102126675计算机基础知识(64152020120)一…

SQLSERVER得到数据库中所有表字段及字段中文描述

如何得到数据库中所有表字段及字段中文描述以下资料,通过csdn的一位师兄从SQL版主那得到:sql中SELECT (case when a.colorder1 then d.name else end) N表名, a.colorder N字段序号, a.name N字段名, (case when COLUMNPROPERTY( a.id,a.name,IsIdentity)1 then √else end)…

SQL Server 2008 R2——使用数字辅助表(master..spt_values)实现用计数字段对记录进行重复显示...

SQL Server 2008 R2——使用数字辅助表(master..spt_values)实现用计数字段对记录进行重复显示 原文:SQL Server 2008 R2——使用数字辅助表(master..spt_values)实现用计数字段对记录进行重复显示版权声明 版权声明:原…

编程界十大顶级IDE

IDE是集成开发环境(Integrated Development Environment)缩写。IDE是一种个编程软件,是集成了程序员语言开发中会需要的一些基本工具、基本环境和其他辅助功能的应用软件。IDE一般包含三个主要组件:源代码编辑器(Edito…

就业局培训计算机心得,人社局计算机培训心得体会.doc

人社局计算机培训心得体会人社局计算机培训心得体会篇一:计算机培训心得体会 计算机培训心得体会: 2017年暑假,我参加了骨干教师计算机培训。通过5天培训老师认真的讲解、不厌其烦的答疑,同班学习的各校同行们激情四射的讨论交流,…

有点成熟的短句,最新个性签名

01、从前的人,多认真。02、我不希望你死于一事无成。03、放弃自我,而后成就自我。04、漫漫人生路,我们且行且珍惜!05、你我只是初见,我便爱上了你。06、放弃了所有,却等不来你说的承诺。07、不问风&#xf…

iscroll 4.0 滚动(水平和垂直)

1、概述 iscroll 专注于页面滚动js。Iscroll滚动做的挺好,特别是针对手机网页(android、iphone)正好弥补手动滑屏的遗缺,而今研究一番,把代码贴出来,供大家参考。 2、iscroll使用说明 初始化iScroll wrapperhour//标识…

布法罗博士计算机专业回国人员,四名UW学生参加爱达荷州国家实验室的实习计划...

中游石油和天然气运营正日益面临代价高昂,受到严格审查的事件,这些事件源于老化(泄漏和爆炸),自然事件(洪水,地震活动和极端天气)以及网络入侵和攻击。解决这些问题的一种方法涉及使用集成的智能监控系统或安全嵌入式智能(SEI)。怀…

学会拐弯,才是人生大智慧(深度好文)

人生天地间,路路九曲弯,从来没有笔直的。水能直至大海,就是因为它巧妙地避开所有障碍,不断拐弯前行。许多聪明人没能走上成功之路,不少是因为撞了南墙不回头。人生路上难免会遇到困难,拐个弯,绕…