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,先 ...
随机推荐
- Git自动部署
Git自动部署文件位于repository下面的hooks里的post-receive #!/bin/sh set -e git-update-server-info gitosis-run-hook ...
- Mac下Erlang环境安装
下载源码(地址:http://www.erlang.org/download.html), 传统的三步安装: ./configure ./make sudo make install 备注:在编译系 ...
- C++程序设计课程学习的网址
很详细 C++程序设计课程主页 http://blog.csdn.net/sxhelijian/article/details/7910565 孙鑫C++视频教程 rmvb格式 全20CD完整版 ...
- AppInventor学习笔记(三)——油漆桶应用学习
一.组件设置 1.画笔颜色选项 选取3个Button,然后改名为红.黄.绿三种颜色,然后进行相应属性的设置. 在这里有个问题就是如何放在一行.. 将3个按钮放进这个方框里面就可以变成一行了. 2.画布 ...
- android wheelview 滚轮控件
项目地址:http://android-wheel.googlecode.com/svn
- jmeter断言
响应断言:检查的内容,如果是变量,设置为变量 断言结果:断言的结果 断言持续时间:请求事件不能超过设置的断言持续时间 Size Assertion:断言字节大小
- JVM的生命周期
package test; public class JVMTestLife { public static void main(String[] args) { new Thread(new Run ...
- 启动TOMCAT报错 java.util.zip.ZipException: invalid LOC header (bad signature)
报错信息大致如下所示: at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect. ...
- Oracle 使用小计
1.Sequence 1.1 什么是Sequence? Sequence是oracle提供的一个对象,用于产生自增的主键.这与sql server的identity是类似的. 从数学的角度来说,其为一 ...
- POJ2125 Destroying The Graph(二分图最小点权覆盖集)
最小点权覆盖就是,对于有点权的有向图,选出权值和最少的点的集合覆盖所有的边. 解二分图最小点权覆盖集可以用最小割: vs-X-Y-vt这样连边,vs和X部点的连边容量为X部点的权值,Y部和vt连边容量 ...