您的位置:首页 > 数据库 > Memcache

Memcached的基础

2016-06-21 21:19 197 查看
一、Memcahed介绍

     memcached 是国外 社区 网站 LiveJournal  的开发团队开发的 高性能的分布式内存缓存服务器。一般的使用目的是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态 Web 应用的速度、提高可扩展性。LiveJourna团队开发了包括  Memcached、 MogileFSMogileFS、 PerlbalPerlbal等不错的开源项目。

  官方网站: http://memcached.org/

 许多 Web应用都将数据保存到 RDBMS 中,应用服务器从中读取数据并在浏览器中显示。但随着数据量的增大、访问的集中,就会出现 RDBMS的负担加重、数据库响应恶化、网站显示延迟等重大影响。这时就该 memcached 大显身手了。memcached 是高性能的分布式内存缓存服务器。一般的使用目的是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的速度、提高可扩展性。

二、memcatched特性

  memcached 作为高速运行的分布式缓存服务器,具有以下的特点。
• 协议简单

• 基于 libevent的事件处理
• 内置内存存储方式
• memcached 不互相通信的分布式

1、协议简单

     memcached 的服务器客户端通信并不使用复杂的 XML等格式,而使用简单的基于文本行的协议
因此,通过 telnet也能在memcached 上保存数据、取得数据。

      2、基于 libevent 

libevent是个程序库,它将 Linux 的epoll、BSD 类操作系统的 kqueue等事件处理功能封装成统一的

接口。即使对服务器的连接数增加,也能发挥O(1)的性能。memcached 使用这个libevent库,因此

能在 Linux、BSD、Solaris 等操作系统上发挥其高性能。关于事件处理这里就不再详细介绍,可以

参考 Dan Kegel的The C10K Problem。

                     

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

  Memcached和redis的区别:

   Memcached:

每个key的数据最大是1M

对各种技术支持比较全面,session可以存储memcache中,各种框架(例如thinkphp)对memcache支持的比较好

比较老牌、传统的内存缓存技术

适合存储简单、实用的数据

数据类型只有String

没有持久化

   Redis:

每个key的数据最大是1G

对各种技术支持没有memcache更好。

新兴的内存缓存技术

适合做集合计算(list/set/sortset)

数据类型较丰富(String/list/Set/Sort set/hash)

有持久化

联系:

数据存储在内存当中,数据模型都是key-value

 

   
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  memcatched基础