1、memcached是danga的一个项目,最早是LiveJournal服务的,最初为了加速LiveJournal访问速度而开发,后来被很多大型网站采用

  官网:  http://www.danga.com/

       http://www.memcached.org/

2、memcached是高性能分布式的内存对象缓存系统,通过内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像、视频、文件以及数据   库检索的结果等。(可以是array,基本变量类型,对象,不能是“资源类型”)

  简单来说:

    将数据调到内存中,然后从内存中读取,从而大大提高内存的读取速度。

3、举例:

  在用户查询系统中,网站的查询并发量很大,需要查询的用户数据也比较大!----根据用户id查询

  ①传统查询----查询数据库

    $user_id = (int)$_GET['user_id'];

    //查询数据库

    mysql_query("select user_info from user where user_id = {$user_id}");//查询了数据库

    ....

    //分配给模板

    $this->assign('findUser');

    因为高并发,所以会给数据库造成难以想象的压力

  ②页面缓存 

    $user_id = (int)$_GET['user_id'];

    //判断是否已经存在被查询过的用户信息形成的静态页面

    $user_{$user_id}_html = "这里是该静态页面的路径";

    //存在,则读取该静态页面,否则查查询数据库

    //查询数据库,并进行页面静态缓存

    mysql_query("select user_info from user where user_id = {$user_id}");//查询了数据库

    ....

    //分配给模板

    $this->assign('findUser');

  ③内存缓存----memcached

    将数据缓存在内存中,内存中读取的速度远远大于从文件中获取数据的速度

    $user_id = (int)$_GET['user_id'];

    //判断内存中是否已经存在该用户数据

    $user_{$user_id}_info = 'memcached中查询是否有用户信息';

    //存在,则读取该静态页面,否则查询数据库

    //查询数据库,并进行一次mem缓存

    mysql_query("select user_info from user where user_id = {$user_id}");//查询了数据库

    ....

    //分配给模板

    $this->assign('findUser');

  说明:

    访问速度如下

          读取数据库(小网站)->页面缓存->内存缓存(大网站)

    变化频繁,访问数据库中数据意义又不大的,往往存储在内存中,Mysql存储类型中有一个memory

memcached学习笔记1--概念的更多相关文章

  1. Oracle RAC学习笔记:基本概念及入门

    Oracle RAC学习笔记:基本概念及入门 2010年04月19日 10:39 来源:书童的博客 作者:书童 编辑:晓熊 [技术开发 技术文章]    oracle 10g real applica ...

  2. memcached学习笔记——存储命令源码分析下篇

    上一篇回顾:<memcached学习笔记——存储命令源码分析上篇>通过分析memcached的存储命令源码的过程,了解了memcached如何解析文本命令和mencached的内存管理机制 ...

  3. memcached学习笔记——存储命令源码分析上篇

    原创文章,转载请标明,谢谢. 上一篇分析过memcached的连接模型,了解memcached是如何高效处理客户端连接,这一篇分析memcached源码中的process_update_command ...

  4. Java IO学习笔记:概念与原理

    Java IO学习笔记:概念与原理   一.概念   Java中对文件的操作是以流的方式进行的.流是Java内存中的一组有序数据序列.Java将数据从源(文件.内存.键盘.网络)读入到内存 中,形成了 ...

  5. Memcached 学习笔记(二)——ruby调用

    Memcached 学习笔记(二)——ruby调用 上一节我们讲述了怎样安装memcached及memcached常用命令.这一节我们将通过ruby来调用memcached相关操作. 第一步,安装ru ...

  6. jQuery学习笔记之概念(1)

    jQuery学习笔记之概念(1) ----------------------学习目录-------------------- 1.概念 2.特点 3.选择器 4.DOM操作 5.事件 6.jQuer ...

  7. Memcached学习笔记

    [TOC] 前言 此为学习笔记汇总,如有纰漏之处,还望不吝指出,谢谢. 启动流程 调用settings_init()设定初始化参数 从启动命令中读取参数来设置setting值 设定LIMIT参数 开始 ...

  8. tensorflow学习笔记——常见概念的整理

    TensorFlow的名字中已经说明了它最重要的两个概念——Tensor和Flow.Tensor就是张量,张量这个概念在数学或者物理学中可以有不同的解释,但是这里我们不强调它本身的含义.在Tensor ...

  9. AngularJs学习笔记--concepts(概念)

    原版地址:http://code.angularjs.org/1.0.2/docs/guide/concepts 继续.. 一.总括 本文主要是angular组件(components)的概览,并说明 ...

  10. (一)Netty源码学习笔记之概念解读

    尊重原创,转载注明出处,原文地址:http://www.cnblogs.com/cishengchongyan/p/6121065.html  博主最近在做网络相关的项目,因此有契机学习netty,先 ...

随机推荐

  1. MySQL支持的列类型

     MySQL支持大量的列类型,它可以被分为3类:数字类型.日期和时间类型以及字符串(字符)类型.本节首先给出可用类型的一个概述,并且总结每个列类型的存储需求,然后提供每个类中的类型性质的更详细的描述. ...

  2. 让html元素随浏览器的大小自适应垂直居中

    转自:http://www.cnblogs.com/linjiqin/archive/2011/06/15/2081362.html 表格可以实现td中的元素垂直居中显示,但是前提条件必须定义td的高 ...

  3. 向table添加水平滚动条

    转自:http://www.cnblogs.com/linjiqin/p/3148225.html <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4. ...

  4. lr_save_var字符串截取总结

    函数作用: 将一个变化长度的字符串保存到parameter中. 用法实例: 此处讲解函数: Action() {     web_save_timestamp_param("tStamp&q ...

  5. html 绘图渐变和图片填充

    包括线性渐变和径向渐变 <!DOCTYPE html> <html> <head lang="en"> <meta charset=&qu ...

  6. MAXIMO移动解决方案在库存管理中的PDA应用系统

    随着无线网络通信技术.掌上电脑技术以及条形码自动识别技术的推广使用,为了强化MAXIMO系统库存管理的功能,着手开发MAXIMO移动应用解决方案. 该解决方案集成了无线局域网络通信.掌上电脑以及条形码 ...

  7. sqlserver2008使用设置sa用户登录步骤

    1.打开sql server 2008,使用windows身份验证. 2.成功登录后,点击安全性->登录名,“sa”右键选择属性,设置密码,勾选“强制密码实施策略”. 3.然后选择属性页下的“状 ...

  8. 奇妙的旅行[XDU1012]

    Problem 1012 - 奇妙的旅行 Time Limit: 1000MS   Memory Limit: 65536KB   Difficulty: Total Submit: 396  Acc ...

  9. BZOJ2216 : [Poi2011]Lightning Conductor

    $f[i]=\max(a[j]+\lceil\sqrt{|i-j|}\rceil)$, 拆开绝对值,考虑j<i,则决策具有单调性,j>i同理, 所以可以用分治$O(n\log n)$解决. ...

  10. HTMl5/CSS3/Javascript 学习推荐资源

    HTMl5/CSS3/Javascript 学习推荐资源 前端的定义应该是数据内容的展示,在国内大家都觉得前端只是HTML+CSS+Javascript,但是实际上与展示有关的都是前端,所以Ruby/ ...