博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
memcache(一)概述
阅读量:6927 次
发布时间:2019-06-27

本文共 1050 字,大约阅读时间需要 3 分钟。

  memcache是一种支持分布式的缓存系统,基于网络连接(当然它也可以使用localhost)方式完成服务,本身它是一个独立于应用的程序或守护进程(Daemon方式)。

本地缓存

  memcached是“分布式”的内存对象缓存系统,那么就是说,那些不需要“分布”的,不需要共享的,或者干脆规模小到只有一台服务器的应用,memcached不会带来任何好处,相反还会拖慢系统效率,因为网络连接同样需要资源,即使是UNIX本地连接也一样。memcached本地读写速度要比直接PHP内存数组慢几十倍,而APC、共享内存方式都和直接数组差不多。可见,如果只是本地级缓存,使用memcached是非常不划算的。

并发连接

  memcached使用libevent库实现网络连接服务,理论上可以处理无限多的连接,但是它和Apache不同,它更多的时候是面向稳定的持续连接的,所以它实际的并发能力是有限制的。在保守情况下memcached的最大同时连接数为200,这和Linux线程能力有关系,这个数值是可以调整的。关于libevent可以参考相关文档。

内存管理

  memcached内存使用方式也和APC不同。APC是基于共享内存和MMAP的,memcachd有自己的内存分配算法和管理方式,它和共享内存没有关系,也没有共享内存的限制,通常情况下,每个memcached进程可以管理2GB的内存空间,如果需要更多的空间,可以增加进程数。

降低数据库压力

  memcached在很多时候都是作为数据库前端cache使用的。因为它比数据库少了很多SQL解析、磁盘操作等开销,而且它是使用内存来管理数据的,所以它可以提供比直接读取数据库更好的性能,在大型系统中,访问同样的数据是很频繁的,memcached可以大大降低数据库压力,使系统执行效率提升。
  memcached也经常作为服务器之间数据共享的存储媒介,例如在SSO系统中保存系统单点登陆状态的数据就可以保存在memcached中,被多个应用共享。

应用

  由于memcache是分布式的,在web项目中可以为不同的服务器提供共享资源。
  由于memcache是把数据直接存储在内存中,那么为了降低数据库的压力,可以再web与数据库之间增加一层memcache缓存。而且在memcache中,内存中存储的数据是根据哈希来实现存储的,那么这样查找数据的销量就会远远高于数据库。

 

本文 由  创作,采用 进行许可。欢迎转载,请注明出处:
转载自: 

你可能感兴趣的文章
为阿里云存储开发的PHP PEAR 包:Services_Aliyun_OSS
查看>>
2013人人网校园招聘笔试题
查看>>
SqlServer基础:Bit类型
查看>>
挖财_百度百科
查看>>
MySql 日期格式化函数date_format()
查看>>
as3中使用stage ,root ,this 区别详解
查看>>
2013年第42周二明智行动的艺术
查看>>
如何订阅Linux相关的邮件列表
查看>>
8086汇编语言(1)虚拟机安装ms-dos 7.1
查看>>
mysqld守护进程
查看>>
2d网络游戏的延迟补偿(Lag compensation with networked 2D games)
查看>>
shell 之for [转]
查看>>
[Windows核心编程]32bit程序在64bit操作系统下处理重定向细节[1]
查看>>
git 常用命令
查看>>
代码里面执行bat
查看>>
当苹果因为UIDevice、udid、uniqueIdentifier而把我们的应用拒之门外invalid binary的时候,呕心沥血解决方法啊...
查看>>
CSS实现DIV层背景透明而文字不透明
查看>>
培养iOS开发新人的一个思路
查看>>
PI专利网站
查看>>
mongoDB oplog的说明及应用
查看>>