memcached学习笔记1--概念
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--概念的更多相关文章
- Oracle RAC学习笔记:基本概念及入门
Oracle RAC学习笔记:基本概念及入门 2010年04月19日 10:39 来源:书童的博客 作者:书童 编辑:晓熊 [技术开发 技术文章] oracle 10g real applica ...
- memcached学习笔记——存储命令源码分析下篇
上一篇回顾:<memcached学习笔记——存储命令源码分析上篇>通过分析memcached的存储命令源码的过程,了解了memcached如何解析文本命令和mencached的内存管理机制 ...
- memcached学习笔记——存储命令源码分析上篇
原创文章,转载请标明,谢谢. 上一篇分析过memcached的连接模型,了解memcached是如何高效处理客户端连接,这一篇分析memcached源码中的process_update_command ...
- Java IO学习笔记:概念与原理
Java IO学习笔记:概念与原理 一.概念 Java中对文件的操作是以流的方式进行的.流是Java内存中的一组有序数据序列.Java将数据从源(文件.内存.键盘.网络)读入到内存 中,形成了 ...
- Memcached 学习笔记(二)——ruby调用
Memcached 学习笔记(二)——ruby调用 上一节我们讲述了怎样安装memcached及memcached常用命令.这一节我们将通过ruby来调用memcached相关操作. 第一步,安装ru ...
- jQuery学习笔记之概念(1)
jQuery学习笔记之概念(1) ----------------------学习目录-------------------- 1.概念 2.特点 3.选择器 4.DOM操作 5.事件 6.jQuer ...
- Memcached学习笔记
[TOC] 前言 此为学习笔记汇总,如有纰漏之处,还望不吝指出,谢谢. 启动流程 调用settings_init()设定初始化参数 从启动命令中读取参数来设置setting值 设定LIMIT参数 开始 ...
- tensorflow学习笔记——常见概念的整理
TensorFlow的名字中已经说明了它最重要的两个概念——Tensor和Flow.Tensor就是张量,张量这个概念在数学或者物理学中可以有不同的解释,但是这里我们不强调它本身的含义.在Tensor ...
- AngularJs学习笔记--concepts(概念)
原版地址:http://code.angularjs.org/1.0.2/docs/guide/concepts 继续.. 一.总括 本文主要是angular组件(components)的概览,并说明 ...
- (一)Netty源码学习笔记之概念解读
尊重原创,转载注明出处,原文地址:http://www.cnblogs.com/cishengchongyan/p/6121065.html 博主最近在做网络相关的项目,因此有契机学习netty,先 ...
随机推荐
- MySQL支持的列类型
MySQL支持大量的列类型,它可以被分为3类:数字类型.日期和时间类型以及字符串(字符)类型.本节首先给出可用类型的一个概述,并且总结每个列类型的存储需求,然后提供每个类中的类型性质的更详细的描述. ...
- 让html元素随浏览器的大小自适应垂直居中
转自:http://www.cnblogs.com/linjiqin/archive/2011/06/15/2081362.html 表格可以实现td中的元素垂直居中显示,但是前提条件必须定义td的高 ...
- 向table添加水平滚动条
转自:http://www.cnblogs.com/linjiqin/p/3148225.html <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4. ...
- lr_save_var字符串截取总结
函数作用: 将一个变化长度的字符串保存到parameter中. 用法实例: 此处讲解函数: Action() { web_save_timestamp_param("tStamp&q ...
- html 绘图渐变和图片填充
包括线性渐变和径向渐变 <!DOCTYPE html> <html> <head lang="en"> <meta charset=&qu ...
- MAXIMO移动解决方案在库存管理中的PDA应用系统
随着无线网络通信技术.掌上电脑技术以及条形码自动识别技术的推广使用,为了强化MAXIMO系统库存管理的功能,着手开发MAXIMO移动应用解决方案. 该解决方案集成了无线局域网络通信.掌上电脑以及条形码 ...
- sqlserver2008使用设置sa用户登录步骤
1.打开sql server 2008,使用windows身份验证. 2.成功登录后,点击安全性->登录名,“sa”右键选择属性,设置密码,勾选“强制密码实施策略”. 3.然后选择属性页下的“状 ...
- 奇妙的旅行[XDU1012]
Problem 1012 - 奇妙的旅行 Time Limit: 1000MS Memory Limit: 65536KB Difficulty: Total Submit: 396 Acc ...
- BZOJ2216 : [Poi2011]Lightning Conductor
$f[i]=\max(a[j]+\lceil\sqrt{|i-j|}\rceil)$, 拆开绝对值,考虑j<i,则决策具有单调性,j>i同理, 所以可以用分治$O(n\log n)$解决. ...
- HTMl5/CSS3/Javascript 学习推荐资源
HTMl5/CSS3/Javascript 学习推荐资源 前端的定义应该是数据内容的展示,在国内大家都觉得前端只是HTML+CSS+Javascript,但是实际上与展示有关的都是前端,所以Ruby/ ...