程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> php內存緩存實現程序代碼

php內存緩存實現程序代碼

編輯:關於PHP編程

在php中緩存分為很多種類型如,內存緩存,文件緩存,頁面緩存本文章要來講述關於php中內存緩存的一些方法,下面我們介紹Memcached緩存和php自帶的APC緩存方法。

1.Memcached緩存。
memcached是高性能的分布式內存緩存服務器,通過緩存數據庫查詢結果,減少數據庫訪問次數,以提高動態Web應用的速度。memcached 使用了“Key=>Value”方式組織數據。可以允許不同主機上的多個用戶同時訪問這個緩存系統,一般用於大型網站使用。memcached使用內存緩存數據,所以它是易失的,當服務器重啟,或者memcached進程中止,數據便會丟失,所以 memcached不能用來持久保存數據。

過php_memcache的人都會覺得 PHP內存緩存是一個很復雜的東西,其實不然。
memcached 是高效、快速的分布式內存對象緩存系統,主要用於加速 WEB 動態應用程序。
這裡介紹memcached在WIN32下的配置及其使用。

一、PHP內存緩存的配置(WIN32環境)

1、下載php_memcache.rar,請從附件下載。

     解壓壓縮包:php_memcache.rar

     php_memcache.rar壓縮包裡主包含的文件有:

     /memcached-1.2.1-win32/memcached.exe
     /php_memcache/php_memcache.dll

2、打開命令提示符,指向到memcached.exe所在路徑,運行memcached.exe -d start。

3、將php_memcache.dll文件拷貝到PHP的動態文件庫的文件夾下。

4、在php.ini文件中加入一行extension=php_memcache.dll。

5、重新啟動Apache,然後查看一下phpinfo,如果有memcache,那麼就說明安裝成功!


例:

 代碼如下 復制代碼

<?php
//包含 memcached 類文件
require_once('memcached-client.php');
 
//選項設置
$options = array(
 'servers' => array('www.hxsd.com:11211'),//memcached 服務的地址、端口
 'debug' => true,//是否打開debug
 'compress_threshold' => 10240,//超過多少字節的數據時進行壓縮
 'persistant' => false//是否使用持久連接
 );
 
//實例化memcached對象
$memcached = new memcached($options);
 
$sql = 'SELECT * FROM table1';
$key = md5($sql);
 
//如果在memcached中沒有緩存數據,把緩存數據寫入memcached
if(!($datas = $memcached->get($key)))
{
 $conn = mysql_connect('localhost', 'hxsd', '123456');
 mysql_select_db('hxsd');
 $result = mysql_query($sql);
 while($row = mysql_fetch_object($result))
 {
  $datas[] = $row;
 }
 //將數據庫中獲取到的結果集數據保存到 memcached 中,以供下次訪問時使用。
 $memcached->add($key, $datas);
}
else
{
 //直接使用memcached中的緩存數據$datas
}
?>

內存緩存二

APC、EC、Zend加速器的比較

一、APC

APC,全稱是Alternative PHP Cache,官方翻譯叫”可選PHP緩存”。

主頁是 http://pecl.php.net/package/apc

php幫助手冊頁面: http://cn.php.net/apc


APC是個優化器,自安裝之日起,就默默地在後台為您的PHP應用服務了.您的所有PHP代碼會被緩存起來. (針對php opcode)

另外,APC可提供一定的內存緩存功能.但是這個功能並不是十分完美,有報告說如果頻繁使用APC緩存的寫入功能,會導致不可預料的錯誤.如果想使用這個功能,可以看看apc_fetch,apc_store等幾個與apc緩存相關的函數.

安裝:

 代碼如下 復制代碼

# pecl install APC

配置:(/etc/php.inc)

 代碼如下 復制代碼

extension=apc.so

[apc]

 代碼如下 復制代碼

apc.enabled = 1

apc.shm_segments = 1

apc.shm_size = 30

apc.optimization = 0

apc.ttl = 7200

apc.user_ttl = 7200

apc.num_files_hint = 1000

apc.mmap_file_mask = /tmp/apc.XXXXXX


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved