先来解释下标题中的三种写法:首字母大写的Memcached,指的是Memcached服务器,就是独立运行Memcached的后台服务器,用于存储缓存数据的“容器”。memcached和memcache是Memcached的客户端,通过二者访问Memcached服务器,向容器存取数据。两者用途一致,但在用法上有稍微差异。

一、Memcached
Memcached 是一个高性能分布式的内存对象缓存系统,通过缓存数据库查询结果,减少数据库访问次数,减少数据库的负载压力,提高动态web应用的性能。

Memcached 是以守护程序方式运行于一个或多个服务器中,随时接受客户端的连接操作,客户端与 Memcached 服务建立连接,根据请求存取对象,每个被存取的对象都有一个唯一的标识符 key,存取操作均通过这个 key 进行,保存到 Memcached 中的对象实际上是放置内存中的,并不是保存在 cache 文件中的,所以 Memcached 存取数据非常高效。注意,这些对象并不是持久的,服务停止之后,里边的数据就会丢失。

Memcached本身基于分布式的系统,可独立于网站应用本身,很容易实现服务器间数据共享。在 Memcached 中可以保存的item数据量是没有限制的,只有内存足够。Memcached单进程最大使用内存为2G,要使用更多内存,可以分多个端口开启多个Memcached进程,进行分布式搭建,毕竟单台Memcache的内存容量的有限的。

但是那些不需要“分布”的,不需要共享的,或者干脆规模小到只有一台服务器的应用,Memcached不会带来任何好处,相反还会拖慢系统效率,因为网络连接同样需要资源。

本文来自Ruesin博客

由于 Memcache服务器端都是直接通过客户端连接后直接操作,没有任何的验证过程,这样如果服务器是直接暴露在互联网上的话是比较危险,所以 Memcached 应放在防火墙里面。

二、memcached 和 memcache 的区别
memcache最早是在2004年2月开发的,而memcached最早是在2009年1月开发的。所以memcache的历史比memcached久。那是不是可以这么理解: memcached 是 memcache 的升级版?

安装memcache扩展,直接导入扩展,更改下php.ini即可。但是在安装memcached的时候,你要先安装libmemcached,libmemcached是memcache的C客户端,它具有的优点是低内存,线程安全等特点。在高并发下,稳定性比memcache有明显提高。

memcache的方法特别少,只有很少一部分基本的操作方法,比 memcached 少很多,具体的可以查询官方手册。

所以总的来说,二者是没有太多其他区别的,只不过是 memcached 比 memcache 多了一些对守护进程的操作方法,性能更好一些。

三、三者关系描述
Memcached 就比如是一个水库(容器),memcache 是一个塑料管,memcached 是一个PVC管。我们可以通过塑料管或者PVC管为水库上水或者取水,用哪种方式因人而异,而PVC管在输送水的效率上明显比塑料管快,而且可以装阀门、开口做分支等等,比塑料管的花样多。

说 Memcached 是服务端,很多人都会搅浑这个概念,说memcache不就是装在服务器上的么,不也是服务端么? Memcached 是可以独立在web服务器之外的任何服务器,甚至可以是集群,而说它是服务端,其实是相对的概念,相对与web服务器的memcache来说是服务端,memcache所在的web服务器相对与用户PC机来说又是服务端。

Ruesin's Blog

另外,我 Windows 搭建的环境,没能成功安装 memcached,很受挫。希望有高手可以指点一二。。

======================

• 在 Memcached 中可以保存的item数据量是没有限制的,只有内存足够
• Memcached单进程最大使用内存为2G,要使用更多内存,可以分多个端口开启多个Memcached进程
• 最大30天的数据过期时间, 设置为永久的也会在这个时间过期,常量REALTIME_MAXDELTA 60*60*24*30 控制
• 最大键长为250字节,大于该长度无法存储,常量KEY_MAX_LENGTH 250 控制
• 单个item最大数据是1MB,超过1MB数据不予存储,常量POWER_BLOCK 1048576 进行控制,它是默认的slab大小
• 最大同时连接数是200,通过 conn_init()中的freetotal 进行控制,最大软连接数是1024,通过settings.maxconns=1024 进行控制
• 跟空间占用相关的参数:settings.factor=1.25, settings.chunk_size=48, 影响slab的数据占用和步进方式

memcache的文档在:http://pecl.php.net/package/memcache

memcached的文档在:http://pecl.php.net/package/memcached

请把最起码的版权请留给博主,谢谢!

转载请注明:分布式缓存Memcached/memcached/memcache详解及区别

分布式缓存Memcached/memcached/memcache详解及区别的更多相关文章

  1. memcached 命令操作详解

    memcached 命令操作详解 一.存储命令 存储命令的格式: <command name> <key> <flags> <exptime> < ...

  2. 分布式缓存BeIT Memcached简介

    分布式缓存BeIT Memcached简介 或许你还没有用到过分布式缓存,在web集群的情况下,它可以很好的让一部分常用数据常驻服务器内存而不用担心各台web不同步.下面稍微介绍一下beitmemca ...

  3. 分布式缓存系统 Memcached 整体架构

    分布式缓存系统 Memcached整体架构 Memcached经验分享[架构方向] Memcached 及 Redis 架构分析和比较

  4. 在telnet下操作memcache详解(操作命令详解)

    这篇文章主要介绍了在telnet下操作memcache详解,telnet下的memcache操作命令详解,需要的朋友可以参考下 在定位问题.测试等时候经常需要对memcache的数据进行一些操作,但是 ...

  5. memcache详解

    MemCache是一个自由.源码开放.高性能.分布式的分布式内存对象缓存系统,用于动态Web应用以减轻数据库的负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高了网站访问的速度. Me ...

  6. PHP输出缓存ob系列函数详解

    PHP输出缓存ob系列函数详解 ob,输出缓冲区,是output buffering的简称,而不是output cache.ob用对了,是能对速度有一定的帮助,但是盲目的加上ob函数,只会增加CPU额 ...

  7. 跨时代的分布式数据库 – 阿里云DRDS详解(转)

    原文章地址:https://www.csdn.net/article/a/2015-08-28/15827676 跨时代的分布式数据库 – 阿里云DRDS详解 发表于2015-08-28 18:39| ...

  8. Sql Server 中 GAM、SGAM、PAM、IAM、DCM 和 BCM 的详解与区别

    Sql Server 中 GAM.SGAM.PAM.IAM.DCM 和 BCM 的详解与区别   GAM.SGAM.PAM.IAM.DCM 和 BCM 都是 SQL Server 中用来管理空间分配的 ...

  9. Python中%r和%s的详解及区别_python_脚本之家

    Python中%r和%s的详解及区别_python_脚本之家 https://www.jb51.net/article/108589.htm

随机推荐

  1. MySQL中char和varchar有啥区别?优缺点是啥?

    在mysql教程中char与varchar的区别呢,都是用来存储字符串的,只是他们的保存方式不一样罢了,char有固定的长度,而varchar属于可变长的字符类型. char与varchar的区别 c ...

  2. c# in deep 之LINQ读取xml(2)

    假如有以下xml文件 <?xml version="1.0" encoding="utf-8" ?><Date>  <Produc ...

  3. 文本框文字垂直居中 CSS

    <html> <head> <style type="text/css"> #text { height:20px; vertical-alig ...

  4. iOS: JS和Native交互的两种方法

    背景: UIWebView: iOS 用来展示 web 端内容的控件. 1. 核心方法: - (NSString*)stringByEvaluatingJavaScriptFromString:(NS ...

  5. highlight高亮

    玩转正则之highlight高亮 2013-10-07 05:16 by 靖鸣君, 584 阅读, 3 评论, 收藏, 编辑 程序员在编写代码的时候少不了和字符串以及“查询”打交道,两者的交集中有一个 ...

  6. mac osx 10.9安装配置macvim

    如果你已经安装了macvim,升级后又不能用了,建议你可以看看http://kodira.de/2013/10/macvim-osx-10-9-mavericks/这篇文章,如果你还没有安装,下面由我 ...

  7. JQUERY UI DOWNLOAD

    JQUERY UI DOWNLOAD jDownload是jQuery的一个下载插件,用户可以在下载文件之前知道文件的详细信息,在提高用户体验度方面起到了很大的作用. 鉴于官网的Demo是通过PHP文 ...

  8. WCF客户端与服务端通信简单入门教程

    服务端 1.新建空白解决方案,然后再空白解决方案中新建:WCF服务应用程序.建完后如图: 2.删掉自动生成的IService1.cs和Service.svc并添加WCF服务文件StudentServi ...

  9. easyui tree 的数据格式转换

    一般用来储存树数据的数据库表都含有两个整型字段:id pid,所以我们查询出来的List一般是这样的(约定pId为-1的节点为根节点): var serverList = [ {id : 2,pid ...

  10. Django入门实践(三)

    Django入门实践(三) Django简单应用 前面简单示例说明了views和Template的工作过程,但是Django最核心的是App,涉及到App则会和Model(数据库)打交道.下面举的例子 ...