zoukankan      html  css  js  c++  java
  • CodeIgniter的缓存小记

        最近接触到了CodeIgniter开源轻量级架构,集合了开发中常用的类和功能函数,关于CodeIgniter的缓存总结有以下几点:

        1. 数据库缓存

        数据库缓存主要是针对于SELECT查询

    复制代码
    // 打开缓存开关
    $this->db->cache_on();
    $query1 = $this->db->query("SELECT * FROM mytable");

    // 使下面这条查询不被缓存
    $this->db->cache_off();
    $query2 = $this->db->query("SELECT * FROM members WHERE member_id = '$current_user'");

    // 再次打开缓存开关
    $this->db->cache_on();
    $query3 = $this->db->query("SELECT * FROM another_table");
    复制代码

          这样query1和query3就被缓存在文件中了,缓存的路径根据您的URL而定,如example.com/index.php/blog /comments的页面, 缓存系统会把所有生成的缓存文件放进一个以 blog+comments做为名称的文件夹里. 如果您要删除关于刚才提到的这个例子与之对应的缓存文件 需要执行以下代码:

    $this->db->cache_delete('blog', 'comments');//$this->db->cache_delete('blog', 'comments')#来删除缓存

         如果要清除所有数据库缓存:

    $this->db->cache_delete_all();

        *其cache模式在于针对不同的uri就会生成cache文件,如果URL中参数不同,则 cache文件就会不同,从而产生了漏洞。如果访问者构建自动生成URI,不断向服务器发起请求,就会瞬间产生大量的垃圾文件,导致系统文件臃肿。

        2. 页面缓存

    $this->output->cache(n); // 请确保application/cache可写

         n 是你希望缓存更新的 分钟 数。可以使用 m/60 来精确到秒,例如 1/60 ,则是精确到 1秒
      

        3. 序例化缓存到文件

    复制代码
    $this->load->driver('cache', array('adapter' => 'apc', 'backup' => 'file'));

    if ( ! $foo = $this->cache->get('foo'))
    {
    echo 'Saving to the cache!<br />';
    $foo = 'foobarbaz!';

    // Save into the cache for 5 minutes
    $this->cache->save('foo', $foo, 300);
    }

    echo $foo;
    复制代码
  • 相关阅读:
    机器学习相关——协同过滤
    推荐系统绝对不会向你推荐什么
    “猜你喜欢”是怎么猜中你心思的?
    Python-Matplotlib安装及简单使用
    经典的机器学习方面源代码库
    Python正则表达式指南
    Python yield 使用浅析
    c++编程规范的纲要和记录
    深度理解依赖注入(Dependence Injection)
    依赖注入
  • 原文地址:https://www.cnblogs.com/webu/p/2774749.html
Copyright © 2011-2022 走看看