php如何利用記憶體作為快取使用

*文
發布: 2023-03-18 11:50:02
原創
5431 人瀏覽過

這篇文章主要介紹了php如何利用記憶體作為快取實現方法,分析了Memcached快取的用法並比較了APC、EC、Zend加速器的用法,需要的朋友可以參考下。

具體如下:

在php中快取分為很多種類型如,記憶體快取,檔案快取,頁面快取。本文要來講述關於php中記憶體快取的一些方法,這裡我們將介紹Memcached快取和php自帶的APC快取方法.

1.Memcached快取。

memcached是高效能的分散式記憶體快取伺服器,透過快取資料庫查詢結果,減少資料庫存取次數,以提高動態網頁應用程式的速度,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(&#39;memcached-client.php&#39;); 
 
//选项设置 
$options = array( 
 &#39;servers&#39; => array(&#39;www.jb51.net:11211&#39;),//memcached 服务的地址、端口 
 &#39;debug&#39; => true,//是否打开debug 
 &#39;compress_threshold&#39; => 10240,//超过多少字节的数据时进行压缩 
 &#39;persistant&#39; => false//是否使用持久连接 
 ); 
 
//实例化memcached对象 
$memcached = new memcached($options); 
 
$sql = &#39;SELECT * FROM table1&#39;; 
$key = md5($sql); 
 
//如果在memcached中没有缓存数据,把缓存数据写入memcached 
if(!($datas = $memcached->get($key))) 
{ 
 $conn = mysql_connect(&#39;localhost&#39;, &#39;hxsd&#39;, &#39;123456&#39;); 
 mysql_select_db(&#39;hxsd&#39;); 
 $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
登入後複製

相關推薦:

#PHP memcache在微信公眾平台的應用實例展示

#PHP 快取機制

#php 快取技術實例_PHP教學

#

以上是php如何利用記憶體作為快取使用的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板