国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > PHP > 正文

php內(nèi)存緩存實(shí)現(xiàn)方法

2024-05-04 23:30:32
字體:
供稿:網(wǎng)友
這篇文章主要介紹了php內(nèi)存緩存實(shí)現(xiàn)方法,分析了Memcached緩存的用法并比較了APC、EC、Zend加速器的用法,需要的朋友可以參考下
 

本文實(shí)例講述了php內(nèi)存緩存實(shí)現(xiàn)方法。分享給大家供大家參考。具體如下:

在php中緩存分為很多種類型如,內(nèi)存緩存,文件緩存,頁面緩存。本文要來講述關(guān)于php中內(nèi)存緩存的一些方法,這里我們將介紹Memcached緩存和php自帶的APC緩存方法.

1.Memcached緩存。

memcached是高性能的分布式內(nèi)存緩存服務(wù)器,通過緩存數(shù)據(jù)庫查詢結(jié)果,減少數(shù)據(jù)庫訪問次數(shù),以提高動(dòng)態(tài)Web應(yīng)用的速度,memcached 使用了“Key=>Value”方式組織數(shù)據(jù),可以允許不同主機(jī)上的多個(gè)用戶同時(shí)訪問這個(gè)緩存系統(tǒng),一般用于大型網(wǎng)站使用,memcached使用內(nèi)存緩存數(shù)據(jù),所以它是易失的,當(dāng)服務(wù)器重啟,或者memcached進(jìn)程中止,數(shù)據(jù)便會丟失,所以 memcached不能用來持久保存數(shù)據(jù).

用過php_memcache的人都會覺得 PHP內(nèi)存緩存是一個(gè)很復(fù)雜的東西,其實(shí)不然memcached 是高效、快速的分布式內(nèi)存對象緩存系統(tǒng),主要用于加速 WEB 動(dòng)態(tài)應(yīng)用程序.

這里介紹memcached在WIN32下的配置及其使用.

一、PHP內(nèi)存緩存的配置,WIN32環(huán)境

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所在路徑,運(yùn)行memcached.exe -d start。

3、將php_memcache.dll文件拷貝到PHP的動(dòng)態(tài)文件庫的文件夾下。

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

5、重新啟動(dòng)Apache,然后查看一下phpinfo,如果有memcache,那么就說明安裝成功!

例,代碼如下:

復(fù)制代碼代碼如下:
<?php 
//包含 memcached 類文件 
require_once('memcached-client.php'); 
 
//選項(xiàng)設(shè)置 
$options = array( 
 'servers' => array('m.survivalescaperooms.com:11211'),//memcached 服務(wù)的地址、端口 
 'debug' => true,//是否打開debug 
 'compress_threshold' => 10240,//超過多少字節(jié)的數(shù)據(jù)時(shí)進(jìn)行壓縮 
 'persistant' => false//是否使用持久連接 
 ); 
 
//實(shí)例化memcached對象 
$memcached = new memcached($options); 
 
$sql = 'SELECT * FROM table1'; 
$key = md5($sql); 
 
//如果在memcached中沒有緩存數(shù)據(jù),把緩存數(shù)據(jù)寫入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; 
 } 
 //將數(shù)據(jù)庫中獲取到的結(jié)果集數(shù)據(jù)保存到 memcached 中,以供下次訪問時(shí)使用。 
 $memcached->add($key, $datas); 

else 

 //直接使用memcached中的緩存數(shù)據(jù)$datas 

?>

內(nèi)存緩存二,APC、EC、Zend加速器的比較

 

一、APC

APC,全稱是Alternative PHP Cache,官方翻譯叫”可選PHP緩存”,主頁是 http://pecl.php.net/package/apc,php幫助手冊頁面: http://cn.php.net/apc

APC是個(gè)優(yōu)化器,自安裝之日起,就默默地在后臺為您的PHP應(yīng)用服務(wù)了.您的所有PHP代碼會被緩存起來,針對php opcode.

另外,APC可提供一定的內(nèi)存緩存功能.但是這個(gè)功能并不是十分完美,有報(bào)告說如果頻繁使用APC緩存的寫入功能,會導(dǎo)致不可預(yù)料的錯(cuò)誤.如果想使用這個(gè)功能,可以看看apc_fetch,apc_store等幾個(gè)與apc緩存相關(guān)的函數(shù).

安裝,代碼如下:

復(fù)制代碼代碼如下:
# pecl install APC

 

配置:/etc/php.inc,代碼如下:

復(fù)制代碼代碼如下:
extension=apc.so

 

[apc] 

復(fù)制代碼代碼如下:
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程序設(shè)計(jì)有所幫助。


發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 江达县| 临海市| 普定县| 达日县| 阜阳市| 秀山| 都江堰市| 金湖县| 灌云县| 安泽县| 武穴市| 宜春市| 久治县| 敦化市| 德兴市| 威远县| 舞钢市| 侯马市| 古浪县| 桦甸市| 武宣县| 比如县| 天全县| 武冈市| 高密市| 土默特左旗| 灵山县| 鹰潭市| 武鸣县| 胶州市| 塔城市| 凌海市| 驻马店市| 武城县| 西昌市| 阳新县| 宕昌县| 普定县| 民乐县| 司法| 阳西县|