1. MemCached是神马?


Memcached  是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。Memcached基于一个存储键/值对的hashmap。其守护进程(daemon )是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信。

MemCached最早是由 Brad Fitzpatrick 在2003年为LiveJournal而开发的缓存程序。目前最新的版本为v1.4.22.

2. MemCached的特点?


协议简单:memcached的服务器客户端通信并不使用复杂的MXL等格式,而是使用简单的基于文本的协议。

基于libevent的事件处理:libevent是个程序库,他将Linux 的epoll、BSD类操作系统的kqueue等时间处理功能封装成统一的接口。    memcached使用这个libevent库,因此能在Linux、BSD、Solaris等操作系统上发挥其高性能。

内置内存存储方式:为了提高性能,memcached中保存的数据都存储在memcached内置的内存存储空间中。由于数据仅存在于内存中,因此重启memcached,重启操作系统会导致全部数据消失。另外,内容容量达到指定的值之后memcached回自动删除不适用的缓存。

不互通信的分布式:memcached尽管是“分布式”缓存服务器,但服务器端并没有分布式功能。各个memcached不会互相通信以共享信息。他的分布式主要是通过客户端实现的。

3. MemCached存储方式?


为了提高性能,memcached中保存的数据都存储在memcached内置的内存存储空间中。由于数据仅存在于内存中,因此重启memcached、重启操作系统会导致全部数据消失。另外,内容容量达到指定值之后,就基于LRU(Least Recently Used)算法自动删除不使用的缓存。memcached本身是为缓存而设计的服务器,因此并没有过多考虑数据的永久性问题。

4. MemCached与Redis的PK?


 每秒处理的请求数不是瓶颈:Redis只使用单核,而Memcached可以使用多核,所以二者比较起来,平均每一个核上,Redis在存储小数据时比Memcached性能更高。而在100k以上的数据中,Memcached性能要高于Redis。虽然Redis最近也在存储大数据的性能上进行优化,但是比起Memcached,还是稍有逊色。

内存使用效率:如果使用简单的key-value存储,Memcached的内存利用率更高。而如果Redis采用hash结构来做key-value存储,由于其组合式的压缩,其内存利用率会高于Memcached。当然,这和你的应用场景和数据特性有关。

数据持久化与数据同步:Redis支持,MemCached不支持。

 数据结构:Redis相比Memcached来说,拥有更多的数据结构,并支持更丰富的数据操作。通常在Memcached里,你需要将数据拿到客户端来进行类似的修改再set回去。这大大增加了网络IO的次数和数据体积。在Redis中,这些复杂的操作通常和一般的GET/SET一样高效。

本文转自 genuinecx 51CTO博客,原文链接:http://blog.51cto.com/favccxx/1626486,如需转载请自行联系原作者

MemCached缓存知识知多少?相关推荐

  1. memcached 缓存服务器

    Memcached 缓存服务器 Memcached 是高性能的分布式内存缓存服务器. 一般的使用目的是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态web应用的速度.提高可扩展性. 主要特点 ...

  2. 从零开始学 Java - Spring 集成 Memcached 缓存配置(二)

    Memcached 客户端选择 上一篇文章 从零开始学 Java - Spring 集成 Memcached 缓存配置(一)中我们讲到这篇要谈客户端的选择,在 Java 中一般常用的有三个: Memc ...

  3. Memcached缓存实例

    1.引用dll:Enyim.MemCaching.dll(网上可以下载到) 2.配置web.config: 3.创建Memcached缓存类MemCacheHelper 4.调用: 转载于:https ...

  4. 第34 memcached缓存

    1.缓存数据库 缓存:将数据存储在内存中,只有当磁盘胜任不了的时候,才会启用缓存. 缺点:断电数据丢失(双电),用缓存存储数据的目的只是为了应付大并发的业务,至于数据存储及可靠性不要找他了. 数据库: ...

  5. redis和memcached缓存

    memcached memcache开源的,高性能,高并发分布式内存缓存系统,天生支持集群 memcached下载地址: http://memcached.org/downloads python实现 ...

  6. 安装telnet_Flask干货:Memcached缓存系统——Memcached的安装

    图 | 源网络文 | 5号程序员 Memcached缓存系统是目前使用最广泛的高性能分布式内存缓存系统,是一个自由开源的高性能分布式内存对象缓存系统. 国内外众多大型互联网应用都选择Memcached ...

  7. Nginx+tomcat+memcached缓存共享session

    Nginx+tomcat+memcached缓存共享session session 的序列化方案官方推荐的有 4 种: 1. java serialization 2. msm-kryo-serial ...

  8. 宝塔无法安装php memcached,宝塔面板安装Memcached缓存加速wordpress

    开启缓存是为了加速wordpress经常用到的一种提速方法,除了有专门的插件进行静态化缓存外,还可以使用Memcached进行内存缓存,宝塔面板集成了Memcached,大大降低了使用难度.今天就记录 ...

  9. C#操作Memcached缓存

    Memcached缓存 的安装和简单操作(add / get / remove)可以先看看这个网站 https://www.runoob.com/memcached/window-install-me ...

最新文章

  1. 自动化运维工具SaltStack详细部署
  2. mysql课程设计案例_JAVA中MySQL建立连接
  3. logback 的 access 模块
  4. flask 模板 php,Flask四之模板
  5. 设置ComboBox控件的提示内容.
  6. Filecoin Gas基础费率涨至4.78 nanoFIL
  7. c语言多线程怎么写,如何用C语言实现多线程
  8. 【数控雕刻】【刀具路径】北京精雕JDPaint5.19+诺诚NC转换器4.0+SDU NCEdit1.0(什么是ENG和NC文件)
  9. ASC2BCD及奇偶校验位
  10. 蒙特卡洛方法(Monte-Carlo Simulation)
  11. 流量高峰时期的性能瓶颈有哪些、以及如何来解决
  12. uplink Tx switching for ENDC/CA
  13. python语音引擎深度学习_基于Python的深度学习BP网络语音增强方法研究
  14. My_blog个人博客系统
  15. webpack4.0 css压缩js压缩 css 样式添加前缀
  16. 2020-2021 ICPC - Gran Premio de Mexico - Repechaje
  17. 大聪明教你学Java | EasyExcel - 用更简单的方式操作Excel
  18. 蓝桥杯------蓝桥幼儿园
  19. ArcGIS 实验理论基础十五 空间查询
  20. Padavan 路由器的入门级技巧

热门文章

  1. python中字符串运算符及用法_python将字符串转换为运算符
  2. visual studio输入法打不了中文_我为什么不用Mac自带输入法
  3. android 获取设备串号,Android获取设备IMEI和Mac地址
  4. python上下文管理关键字_[宜配屋]听图阁
  5. git add .出现尚未暂存以备提交的变更
  6. 《系统集成项目管理工程师》必背100个知识点-47质量保证人员(QA)的主要工作...
  7. el-date-picker怎样获取选择的时间范围值并判断是否大于7天
  8. Vue+Openlayers实现地图上绘制线
  9. Electron中通过ipcMain和ipcRender实现主进程和渲染进程之间的相互通信
  10. Angular中父子组件之间父组件给子组件传值、传递方法、传递自己