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

转载于:https://www.cnblogs.com/Zell-Dinch/p/3900605.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值