码迷,mamicode.com
首页 > 系统相关 > 详细

缓存之Memcached简介

时间:2015-05-31 18:27:59      阅读:277      评论:0      收藏:0      [点我收藏+]

标签:

前言
    前篇简单较少了EnCache,本篇将介绍Memcached,之后还会将两者进行对比。

正题
一.简介
    Memcached是高性能的分布式内存缓存服务器。一般的使用目的是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的速度、提高可扩展性.
    Memcached为key->value非关系型数据库,key为一般字串,值唯一。value除了php中的资源不能存,其它的数据都能存储(字符串、数值、数组、对象、布尔值、null、二进制<图片、视频>)
技术分享

二.提速方法:
1、传统:模拟cached方法(存储到数据库时生成一份静态文件到磁盘中)
2、直接操作内存(内存表,memcached服务维持了一张内存表 hashdata)
3、CPU寄存器(最高速的,但是代价成本高)

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

2、基于libevent事件处理
    libevent是个程序库,它将Linux的epoll、BSD类操作系统的kqueue等事件处理功能封装成统一的接口。即使对服务器的连接数增加,也能发挥O(1)的性能。memcached使用这个libevent库,因此能在Linux、BSD、Solaris等操作系统上发挥其高性能。

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

4、不互相通信的分布式
    memcached尽管是“分布式”缓存服务器,但服务器端并没有分布式功能。各个memcached不会互相通信以共享信息。那么,怎样进行分布式呢?这完全取决于客户端的实现。在接下来的教程苦李将会详细介绍memcached的分布式。

缓存之Memcached简介

标签:

原文地址:http://blog.csdn.net/dandan8866/article/details/46290469

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!