分布式缓存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
随机推荐
- 排序算法学习,python实现
原创博文,转载请注明出处 利用周六周末的时间把几种基本的排序方法用python实现了一下,废话少说,直接上代码. 本文不注重基础知识的讲解,只做大致的描述,大家如果不清楚概念,自行查找资料. 直接插入 ...
- 基于多重信号分类算法的DOA估计
原创博文,转载请注明出处 下面的论文是我的雷达处理的作业,拿来共享,不喜勿喷.由于公式编辑器的原因,无法复制公式,全部内容请点击. 基于多重信号分类算法的DOA估计 1引言 多重信号分类(MUSIC) ...
- Java:终结器
目录 背景Java版:终结器防卫者C#版:“终结器防卫者”备注 背景返回目录 多数情况我们不需要重写 finalize 方法,只有当我们需要持有未托管资源的时候才需要,而此时重写 finalize 方 ...
- IP地址分类(转)
IP地址分类以及C类IP地址的子网划分 国际规定:把所有的IP地址划分为 A,B,C,D,E A类地址:范围从0-127,0是保留的并且表示所有IP地址,而127也是保留的地址,并且是用于测试环回用的 ...
- CC.NET模板简化配置
[Hello CC.NET]巧用模板简化配置 从 <[Hello CC.NET]CC.NET 实现自动化集成> 到 <[Hello CC.NET]自动化发布时 Web.config ...
- .net postsharp编译时生成的代码?
使用PostSharp进行AOP框架设计:一个简单的原型 AOP已经不是一个什么新名词了,在博客园使用关键字搜索可以查出n多条关于AOP的介绍,这里就不再赘述了. 在Bruce Zhang's B ...
- 博客已迁移到lizhug.com
新的博客地址 http://lizhug.com
- 权限系统设计实现MVC4 + WebAPI + EasyUI + Knouckout
权限系统设计实现MVC4 + WebAPI + EasyUI + Knouckout (一) 一.前言 之前的博客一直都还没写到框架的实现及权限系统,今天开始写我的权限系统,我以前做过的项目基本上都有 ...
- c# 在datagridview中添加comboboxcolumn 绑定数据库读取显示数据
datagridview中的comboboxcolumn 从绑定的数据库中读取显示时,只需要注意一点,就是sql语句加个 CStr() 字符串转换函数即可,如下: SELECT CStr(XXX) a ...
- Linux Wine with *.bat *.exe ( Photoshop and etc.. )
Firtly all you need is to install wine on your computer. Mine is ubuntu 12.04 which is running KDE o ...