php缓存

1:缓存技术优点

      缓存技术就是避免从数据库中读取数据,可以大大减轻服务器的负载。

2:缓存原理

      缓存实现的基本原理是将数据库查询结果以字符串序列化形式保存到磁盘文件中,打开时再反序列化,这样的效率会高于Mysql 数据库查询,特别时夺标连接查询时会特别明显。

3:什么样的数据适合缓存

     (1)只缓存很少变化的数据

     (2)缓存和安全性

     (3)良好的缓存系统设计

     (4)备份与持久化

     (5)确定缓存过期时间

     (6)基于文件的缓存

4:页面静态化

     (1)静态化的优势

              加载快,容易编写,服务器负载小,带宽成本降低

     (2)静态化代码

             <?php

                  // 开始缓冲区

                  ob_start();

$cachefile = "cache/static.html";

$cachetime = 10* 30;

if(file_exists($cachefile)&&time()-$cachetime < filetime($cachefile)){

   include($cachefile);

   echo "<!-- published at ".date("H:i",filetime($cachefile))." by Think Creative Cms-->\n";

   exit();

}

 

echo "<!-- 此处时要生成静态的PHP脚本文件 -->";

$fp = fopen($cachefile, "w");

fwrite($fp, ob_get_contents());

fclose($fp);

 

// 关闭缓冲区

ob_end_flush();

 

             ?>

 

5 :OpCode缓存

       php执行流程:  PHP脚本编译 => 执行 OpCode => 发送 HTML 到浏览器

 

6:OpCode 缓存管理工具

      主流的OpCode 缓存管理工具主要有 APC,xCache,eAccelerator 及 ionCube PHP Accelerator,他们可以将 PHP 编译的OpCode 中间码保存到缓存中

 

     6-1:APC ,eAccelerator 和 XCache 三者的比较

        APC,eAccelerator 和 XCache 都是非常有用也是非常类似的工具,每个都提供缓存性能优化和管理的功能。APC 和 XCache 是开放源代码的项目,用户可以在源代码上进行二次开发,开发自定义的函数。eAccelerator 的开源相对严格,但它是一个相对活跃的项目。

 

7:用户级别的缓存

8:使用 deflate 压缩页面

     向客户端发送 HTML 之前还可增加一部优化,那就是压缩功能。HTTP 协议允许压缩传输数据,压缩可使 Web 应用提速并节省带宽。

 

9:memcache

   memcached 客户端分布式机构与算法支持

   分布算法目前有两种, 取模算法 和 一致性算法(hash算法)

   memchahed 的技术限制

          ① memchched 中可以保存的 item 数据量是没有限制的,只要内存足够

          ② memchched 单进程最大使用内存是 2G,要使用更多内存,可以分多个端口开启多个memchched 进程

          ③ 最大 30 天的数据过期时间,设置为永久的也会在这个时间过期,由常量 REALTIME_MAXDELEA 60*60*24*30 控制

          ④ 单个 item 最大数据是 1MB,超过 1MB 数据不予存储,由常量 POWER_BLOCK 1048576 进行控制,它是默认的 slab 大小

          ⑤ 最大同时连接数是 200

   9-4: memchched 的缓存类型

   

 

  9-5 :使用 memchched 做分布式 Session 

             三种方式实现 session  存入 memchche 中

            ①:修改 php.ini 配置文件的代码

                   session.save_handler = memcache 

                   session.save_path = "tcp://127.0.0.1:11211"

            ②:修改网站目录下的 .htaccess 文件

                   php_value  session.save_handler "memcache     

                   php_value  session.save_path  "tcp://127.0.0.1:11211"   

            ③:PHP 脚本中写入

                   ini_set("session.save_handler", "memcache");

                   ini_set("session.save_path", "tcp://127.0.0.1:11211"  )  

<?php
    session_stare();
    if(!isset($_SESSION['memchched_test'])){
        $_SESSION['memchched_test'] = time();
    }
    $_SESSION['add_test'] = time();
    echo $_SESSION['memchched_test'];
    echo "<br /><br />";
    echo $_SESSION['add_test'];
    echo "<br /><br />";
    echo session_id();

    $memchche = memcache_connect("localhost", 11211);
    var_dump($memchche->get(session_id()));
    string(37) "memchched_test|i:1111545454;add_test|i:1111125455"
?>

 

 

 

展开阅读全文

没有更多推荐了,返回首页