分布式缓存Memcached/memcached/memcache详解及区别
先来解释下标题中的三种写法:首字母大写的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机来说又是服务端。
另外,我 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详解及区别的更多相关文章
- memcached 命令操作详解
memcached 命令操作详解 一.存储命令 存储命令的格式: <command name> <key> <flags> <exptime> < ...
- 分布式缓存BeIT Memcached简介
分布式缓存BeIT Memcached简介 或许你还没有用到过分布式缓存,在web集群的情况下,它可以很好的让一部分常用数据常驻服务器内存而不用担心各台web不同步.下面稍微介绍一下beitmemca ...
- 分布式缓存系统 Memcached 整体架构
分布式缓存系统 Memcached整体架构 Memcached经验分享[架构方向] Memcached 及 Redis 架构分析和比较
- 在telnet下操作memcache详解(操作命令详解)
这篇文章主要介绍了在telnet下操作memcache详解,telnet下的memcache操作命令详解,需要的朋友可以参考下 在定位问题.测试等时候经常需要对memcache的数据进行一些操作,但是 ...
- memcache详解
MemCache是一个自由.源码开放.高性能.分布式的分布式内存对象缓存系统,用于动态Web应用以减轻数据库的负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高了网站访问的速度. Me ...
- PHP输出缓存ob系列函数详解
PHP输出缓存ob系列函数详解 ob,输出缓冲区,是output buffering的简称,而不是output cache.ob用对了,是能对速度有一定的帮助,但是盲目的加上ob函数,只会增加CPU额 ...
- 跨时代的分布式数据库 – 阿里云DRDS详解(转)
原文章地址:https://www.csdn.net/article/a/2015-08-28/15827676 跨时代的分布式数据库 – 阿里云DRDS详解 发表于2015-08-28 18:39| ...
- Sql Server 中 GAM、SGAM、PAM、IAM、DCM 和 BCM 的详解与区别
Sql Server 中 GAM.SGAM.PAM.IAM.DCM 和 BCM 的详解与区别 GAM.SGAM.PAM.IAM.DCM 和 BCM 都是 SQL Server 中用来管理空间分配的 ...
- Python中%r和%s的详解及区别_python_脚本之家
Python中%r和%s的详解及区别_python_脚本之家 https://www.jb51.net/article/108589.htm
随机推荐
- iOS基础 - UIDynamic
一.UIKit动力学 UIKit动力学最大的特点是将现实世界动力驱动的动画引入了UIKit,比如重力,铰链连接,碰撞,悬挂等效果,即将2D物理引擎引入了UIKit 注意:UIKit动力学的引入,并不是 ...
- 自定义表单-jsonform
项目文件地址:https://github.com/powmedia/backbone-forms#editor-list DEOM:http://jsfiddle.net/evilcelery/dW ...
- CKeditor 集成 CKFinder
之前照着网上的做,遇到了一些问题,经过多次实验修改最后算是成功了,下面进行详细讲解. 一.CKeditor的配置(附件中已有最新版CKeditor和CKFinder) 1.需要下载ckeditor, ...
- jquery扩展方法
jquery插件的开发包括两种:一种是类级别的插件开发,即给jquery添加新的全局函数,相当于给jquery类本身添加方法. jquery的全局函数就是属于jquery命名空间的函数,另一种是对象级 ...
- web.xml加载过程
web.xml加载过程:1 启动WEB项目的时候,容器(如:Tomcat)会读他的配置文件web.xml读两个节点 <listener></listener>和<con ...
- 为什么不能在子类或外部发布C#事件
为什么不能在子类或外部发布C#事件 背景 一个朋友问了一个问题:“为什么不能在子类或外部发布C#事件?”,我说我不知道,要看看生产的IL代码,下面我们看看. 测试 代码 1 using System; ...
- Using CrunchBase API
Let us have fun with CrunchBase API. What can CrunchBase API give us? They said: https://developer.c ...
- [置顶] Android系统移植与调试之------->Amlogic方案编译步骤
1. 拷贝Amlogic的SourceCode 切换目录到 /home/roco/work/amlogic/SourceCode/mx0831-0525下将mx0831-0525.tgz拷贝到 / ...
- Dalvik虚拟机的垃圾收集机制
垃圾收集机制是Java虚拟机共有的特性, 这里介绍Dalvik虚拟机的垃圾收集机制特点. 在android2.3之前,有以下几个特点: 1. 垃圾收集线程在执行的时候,其它线程都停止. 2. 一次 ...
- 定义文件XML——从简单开始
本文纯属个人见解,是对前面学习的总结,如有描述不正确的地方还请高手指正~ 通过看XML讲授的视频,算是对XML有了简略的认识,原本不盘算写这篇博客,但无法原来视频讲授的内容就少,再不踊跃写些东西,过不 ...