zoukankan      html  css  js  c++  java
  • 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

    ---- 始终相信这句:
    ----“做每天该做的事,不计结果!”
    ---- 因爲對於編程還只是新手,對很多知識掌握的不牢靠,歡迎大家批評指正~~|=-=|~~
  • 相关阅读:
    linux压缩与解压
    simple 单例
    模板字符串
    变量的解构赋值
    let和const关键字
    React的基本认识
    Docker安装Nginx
    jenkins创建工程
    Jenkins系统初始化配置
    在CentOS上使用Docker镜像安装Jenkins
  • 原文地址:https://www.cnblogs.com/Zell-Dinch/p/3900605.html
Copyright © 2011-2022 走看看