php memcache的一些簡單應用

2021-07-16 12:26:35 字數 2762 閱讀 7090

/* 例項化memcache類的物件 */

$memcache = new memcache;

/* 連線本機的memcached伺服器 */

$memcache -> connect('localhost', 11211);

/* 向本機的memcached伺服器中新增一組資料 */

$is_add1 = $memcache->add('brophp', 'brophp框架');

/* 向本機新增每一陣列作為資料,陣列或物件將會被序列化 */

$is_add2 = $memcache->add('lamp', array('linux', 'apache', 'mysql', 'php'));

/* 如果新增的key已經存在,則新增將會失敗 , memcache_compressed 使用zlib壓縮, 0表示不過期*/

$is_add3 = $memcache->add('lamp', 'lamp',  memcache_compressed, 0);

/*設定乙個指定 key 的快取變數內容, 如果key不存中則新新增,如果存在則為修改 */

$is_set1 = $memcache->set('phpfw', 'brophp框架');

/* 指定的key已經存在,則修改內容 ,快取一周*/

$is_set2 = $memcache->set('brophp', 'brophp超經量組框架',memcache_compressed, 7*24*60*60);

/* 使用replace()替換乙個指定已存在key 的的快取變數內容 是set()方法的別名 ,設定大於30天的快取*/

$is_replace = $memcache->replace('lamp', 'lamp',  memcache_compressed, time()+31*24*60*60);

$memcache -> delete('lamp', 30);    //在30秒內刪除lamp的項

/*$mem->addserver('192.168.0.11', 11211);   //新增第乙個memcached伺服器

$mem->addserver('192.168.0.12', 11211);   //新增第二個memcached伺服器

$mem->addserver('192.168.0.13', 11211);   //新增第三個memcached伺服器

*//* 通過配置檔案可以動態設定多台memcached伺服器的引數 */

$mem_conf = array(

array('host'=>'192.168.0.11', 'port'=>'11211'),

array('host'=>'192.168.0.12', 'port'=>'11211'),

array('host'=>'192.168.0.13', 'port'=>'11211')

);/* 通過迴圈按$mem_conf陣列中的內容設定多台memcached伺服器 */

foreach ( $mem_conf as $v )  

/* 使用迴圈向3臺memcached伺服器中新增100條資料

會使用「crc32(key) % current_server_num」雜湊演算法將 key 平均雜湊到3臺伺服器中

*/for($i=0; $i < 100; $i++)

/* 注意第6個引數值15的作用 */

$is_add = $memcache->addserver('localhost', 11211, true, 1, 1, 15, true);

/* 向本機的memcached伺服器中新增一組資料 */

$is_set = $memcache->set('brophp', 'brophp超經量組框架');

實際專案中的應用舉例:

/** 該函式用於執行有結果集的sql語句,並將結果快取到memcached伺服器中

@param    string    $sql         有結果集的查詢語句sql

@param    object    $memcache    memcache類的物件

@return    $data                返回結果集的資料    */

function select($sql, memcache $memcache)catch(pdoexception $e)

$stmt = $pdo->prepare($sql);

$stmt->execute();

/* 從資料庫中獲取資料,返回二維陣列$data */

$data = $stmt->fetchall(pdo::fetch_assoc);

/* 這裡向memcached伺服器寫入從資料庫中獲取的資料*/

$memcache -> add($key, $data,  memcache_compressed, 0);

}return $data;

}$memcache = new memcache;

/* 可以使用addserver()方法新增多台memcached伺服器 */

$memcache -> connect('localhost', 11211);  

/* 第一次執行還沒有快取資料, 會讀取一次資料庫, 當再次訪問程式時, 就直接從memcache獲取*/

$data = select("select * from user", $memcache);

var_dump($data);   //輸出資料

/* 關閉與memcached伺服器的連線 */

$memcache -> close();

關於go get命令的一些簡談

我剛開始接觸golang的時候,曾以為go get git clone,後來發現,是我想的太簡單了。按照官方的說法,go get借助 管理工具 例如 git,svn,hg等等 從遠端拉取 和依賴包,並且自動完成編譯和安裝。可以這麼理解,go get獲取 到本地的時候編譯器會通覽一遍 得出需要哪些依賴...

Oracle一些DML語句簡例

1.資料型別 varchar2,char,number,date,timestamp 2.建表create table stuinfo sid number primary key,sanme varchar2 20 not null,score number 5,2 五位小數,小數點後兩位 bir...

一些人,一些事,一些

我覺得這是國內it企業浮躁和傳統的官本位性質決定的,導致國內企業都本末倒置。要想改變命運,我覺得有以下出路 1.不做技術了,改做混混 混混的概念很廣泛的,比如銷售 經理 幹部 皮包公司之類其實都屬於這類。中國就是這樣,越浮越掙錢,只有混混才能發財。要不更進一步,做流氓,廣義的流氓,也很不錯。2.專心...