技術(shù)員聯(lián)盟提供win764位系統(tǒng)下載,win10,win7,xp,裝機(jī)純凈版,64位旗艦版,綠色軟件,免費(fèi)軟件下載基地!

當(dāng)前位置:主頁 > 教程 > 服務(wù)器類 >

阿里云ACE的應(yīng)用模板移植

來源:技術(shù)員聯(lián)盟┆發(fā)布時(shí)間:2019-02-02 12:12┆點(diǎn)擊:

Aliyun Cloud Engine(以下簡稱ACE)是基于彈性計(jì)算平臺的可線性伸縮的應(yīng)用托管運(yùn)行環(huán)境。應(yīng)用模板是我們借鑒了業(yè)內(nèi)的App Store的概念,簡化用戶創(chuàng)建應(yīng)用的步驟,方便應(yīng)用的推廣。本文只講述PHP應(yīng)用的模板移植,其它語言請參考相關(guān)文檔。

1. 文件、目錄讀寫

出于安全角度考慮,ACE對本地文件讀寫進(jìn)行了一些限制,用戶數(shù)據(jù)建議放在我們的OSS中(開放存儲服務(wù),具備高可靠性及可擴(kuò)展性的海量數(shù)據(jù)存儲),文件讀寫都需使用ACE提供的統(tǒng)一接口。ACE支持創(chuàng)建用戶數(shù)據(jù)目錄,也支持創(chuàng)建源代碼文件上的目錄。

PHP自帶的fread、fwite 已被ACE默認(rèn)關(guān)閉,請使用以下方法實(shí)現(xiàn)。

< ?php

Class CeFile{}


Function write($fileName, $content, $sync=0) 文件寫入

$fileName 文件路徑(相對路徑)

$content 文件內(nèi)容

$sync是否需要同步到所有web端,為保證多臺web數(shù)據(jù)同步,默認(rèn)設(shè)為0

返回 true|false


Function read($fileName) 讀取文件內(nèi)容

$fileName 文件路徑(相對路徑)

返回文件內(nèi)容|false


Function delete($fileName) 刪除文件

$fileName 文件路徑(相對路徑)

返回 true|false


成員變量errno 為錯誤代號

成員變量errmsg 為返回的錯誤信息供debug時(shí)使用

?>

ACE文件讀寫方法如下:

//創(chuàng)建cefile對象

$ce = new CeFile();

//文件寫入

$ce->write($fileName, $content, $sync=0);

//讀取文件內(nèi)容

$ce->read($fileName);

//刪除文件

$ce->delete($fileName);

2. 文件緩存部署

文件緩存的主要目的是把經(jīng)常訪問的數(shù)據(jù)保存在本地文件中,當(dāng)有請求訪問的時(shí)候,直接將數(shù)據(jù)調(diào)出,避免了再次對數(shù)據(jù)庫的請求的I/O操作,減少數(shù)據(jù)庫的負(fù)載壓力。

ACE給每個(gè)應(yīng)用默認(rèn)部署兩個(gè)實(shí)例,當(dāng)有請求訪問的時(shí)候,該請求就會路由到其中的一個(gè)實(shí)例。ACE具有伸縮性,隨著請求的增加和減少,可以增加或減少實(shí)例。為了提高性能,ACE也具有文件緩存功能,如緩存配置信息。當(dāng)用戶修改配置文件時(shí),應(yīng)調(diào)用文件緩存的功能,實(shí)現(xiàn)多臺實(shí)例間配置信息的同步。

因此,應(yīng)用中若用到文件緩存,必須使用ACE提供的文件讀寫接口,使用方法同文件讀寫。使用文件緩存部署應(yīng)將write方法$sync同步參數(shù)設(shè)置為1。

3. Memcache緩存部署

Memcache緩存管理是AACE為開發(fā)者提供的分布式緩存服務(wù),以共享的方式緩存用戶的key-value形式的小數(shù)據(jù),以加快數(shù)據(jù)響應(yīng)速度,減輕后端數(shù)據(jù)處理的壓力。

ACE環(huán)境下的memchae是默認(rèn)為開啟的,默認(rèn)給用戶免費(fèi)提供64M。若用戶需要使用memcache緩存,注意以下事項(xiàng)。

ACE支持的Memcache 的API如下:

bool Memcache::init ()
array Memcache::get ( array $keys [, array &$flags ] )
bool Memcache::set ( string $key , mixed $var [, int $flag [, int $expire ]] )
bool add ( string $key , mixed $var [, int $flag [, int $expire ]] )
bool replace ( string $key , mixed $var [, int $flag [, int $expire ]] )
bool decrement ( string $key [, int $value = 1 ] )
bool increment ( string $key [, int $value = 1 ] )
bool delete ( string $key [, int $timeout = 0 ] )
bool close ()

ACE不支持的Memcache 的API 如下:

bool addServer* *( string $host [, int $port =
11211 [, bool $persistent [, int $weight [, int $timeout [, int $retry_interval [, bool
$status [, callback $failure_callback [, int $timeoutms ]]]]]]]] )
bool connect* *( string $host [, int $port [, int $timeout ]] )
bool flush* *( void )
bool* *pconnect ( string $host [, int $port [, int $timeout ]] )
bool setServerParams* *( string $host [, int $port =
11211 [, int $timeout [, int $retry_interval = false [, bool $status [, callback$failure_callback ]]]]] )

應(yīng)用如果使用Memcache緩存,就必須使用ACE提供的memcache緩存接口。Memcache緩存使用方法如下:

< ?php

//連接

$mem = new Memcache(); //創(chuàng)建memcache對象,內(nèi)部會訪問agent獲取地址 及ID

$mem->init();


//保存數(shù)據(jù)

$mem->set('key1', 'This is first value', 0, 60);

$val = $mem->get('key1');


//替換數(shù)據(jù)

$mem->replace('key1', 'This is replace value', 0, 60);

$val = $mem->get('key1');


//保存數(shù)組

$arr = array('aaa', 'bbb', 'ccc', 'ddd');

$mem->set('key2', $arr, 0, 60);

$val2 = $mem->get('key2');


//刪除數(shù)據(jù)

$mem->delete('key1');

$val = $mem->get('key1');


//關(guān)閉連接

$mem->close();

?>

4. 文件上傳

通過Web上傳的文件都是基于OSS的存儲(OSS是阿里云提供的開放存儲服務(wù),用戶可以利用OSS搭建圖片、視頻等多媒體分享網(wǎng)站,個(gè)人/企業(yè)數(shù)據(jù)備份等基于大規(guī)模數(shù)據(jù)的服務(wù))。