最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

PHP數(shù)據(jù)庫操作二:memcache用法分析

 更新時間:2017年08月16日 12:11:15   作者:枕邊書  
這篇文章主要介紹了PHP數(shù)據(jù)庫操作memcache用法,結(jié)合實例形式詳細分析了memcache的下載、安裝、配置及相關(guān)使用技巧,需要的朋友可以參考下

本文實例講述了PHP數(shù)據(jù)庫操作之memcache用法。分享給大家供大家參考,具體如下:

在一個高并發(fā)的web應(yīng)用中,數(shù)據(jù)庫存取瓶頸一直是個大問題,一旦達到某個極限,數(shù)據(jù)庫很容易崩潰,但是如果我們把常用的數(shù)據(jù)放到內(nèi)存中,在需要的時候從內(nèi)存中取,不光讀取速度快,而且節(jié)約數(shù)據(jù)庫IO。

memcache簡介

Memcache是一個高性能的分布式的內(nèi)存對象緩存系統(tǒng),通過在內(nèi)存里維護一個統(tǒng)一的巨大的hash表,它能夠用來存儲各種格式的數(shù)據(jù),包括圖像、視頻、文件以及數(shù)據(jù)庫檢索的結(jié)果等。簡單的說就是將數(shù)據(jù)調(diào)用到內(nèi)存中,然后從內(nèi)存中讀取,從而大大提高讀取速度。

memcache的mem是內(nèi)存(memory),cache是緩存,結(jié)合是內(nèi)存緩存的意思。我們應(yīng)用memcache時,讀取數(shù)據(jù)先從memcache內(nèi)讀取,若查找不到再去數(shù)據(jù)庫里查找,并將數(shù)據(jù)存入memcache,待下次查找時便能輕易找到。

需要注意:

memcache是內(nèi)存型的數(shù)據(jù)庫 ,因為內(nèi)存的關(guān)閉釋放的特性,memcache也無法持久化存儲內(nèi)容;
memcache內(nèi)部是分塊存儲,所以大于1M的數(shù)據(jù)也無法存儲。
memcache依賴libevent庫,安裝前需確認已經(jīng)安裝了libevent庫。
memcache是一個輕量級的內(nèi)存型數(shù)據(jù)庫,只支持key-value型的存儲。
memcache中沒有關(guān)于用戶,密碼的設(shè)置,所以在配置時要配置防火墻的端口限制連接,以達到安全的目的。
使用repcached也能輕易實現(xiàn)memcache的單master單slave主從復(fù)制。

memcache的應(yīng)用場景

存儲大量不需要持久存儲或數(shù)據(jù)庫內(nèi)已存在不會變動的數(shù)據(jù)。
讀取數(shù)據(jù)非常頻繁數(shù)據(jù),要求小于1M。
數(shù)據(jù)類型簡單的key-value型數(shù)據(jù)。
計算好的結(jié)果和渲染后的網(wǎng)頁模板文件。
因其原子遞增性,可以用來計數(shù)。
因為可以設(shè)置數(shù)據(jù)過期時間的特性,存儲期限數(shù)據(jù)。不過需要注意,memcache會在分配的內(nèi)存不足時以最近最少使用原則(LRU)重用內(nèi)存,可能會導(dǎo)致信息提前被刪除。
用memcache存儲session信息,以達到多服務(wù)器session共享。需要配置:php.ini:

session.save_handler = memcache //設(shè)置session的儲存方式為memcache 
memcache.hash_strategy = "consistent"http://設(shè)置memcache的hash算法為一致性哈希算法。 
session.save_path = "tcp:/ip:port" //設(shè)置session儲存的位置,多臺memcache用逗號隔開。

memcache服務(wù)器的安裝

memcache的安裝簡單,服務(wù)器可以在其官網(wǎng)http://www.memcached.org/下載,解壓后在其目錄下運行./configure -prefix=/path編譯,然后make / make test / make install 得到可以直接執(zhí)行的二進制文件。

使用./memcached命令即可開啟服務(wù)器,其常用參數(shù)如下:

-p port 監(jiān)聽端口 (默認: 11211)
-d 以后臺方式運行Memcached
-u username 運行Memcached的賬戶
-m n 最大的內(nèi)存使用, 單位是MB,默認 64 MB
-c connections 最大連接數(shù)量, 默認是 1024

memcache的常用命令

用memcache客戶端或telnet連接到memcache后,就可以對memcache進行操作了。

memcache數(shù)據(jù)結(jié)構(gòu)簡單,所以命令行命令也很少,下面以一條常用命令來簡析一下命令格式:

add key flags expire_time length \r\n value

flags:是否壓縮/序列化,通常為0。

expire_time:從存儲后多久過期。以秒(s)為單位,最大為30天的長度,超過30天的長度被視為時間戳表示"到什么時候過期",若設(shè)為0表示永不過期。

length:value長度,輸入長度回車之后,命令行會讀取你接下來輸入的length個字符。

set key flags expire_time length  //如果有值則覆蓋原值,沒有則新增,add在有值時會存儲失敗
get key               //獲取key的值
replace key flags expire_time length// 替換一個已存在的key
append/preappend key flags expire_time length// 給key的value后面/前面添加新內(nèi)容。
preappend key flags expire_time length   // 給key的value前面添加新內(nèi)容。
inc/dec key [n]             //key的值遞增/遞減1/[n]
delete key               //刪除一個key
flush_all [n]              //[在n秒后]刪除全部數(shù)據(jù)
stats [options]             //獲取memcache[有關(guān)某一項]的詳細信息

PHP的memcache擴展及應(yīng)用

https://pecl.php.net/index.php搜索獲取到所需的memcache擴展包。

linux系統(tǒng),直接挑選版本(推薦最新stable穩(wěn)定版)下載,解壓后在解壓目錄下用phpize工具產(chǎn)生configure文件,并用它安裝,安裝完成后在/php.ini中添加extension。具體可參考前文:http://www.fzitv.net/article/121314.htm。

windows下要點擊鏈接右邊的“windows logo DLL”鏈接,并在新打開的頁面中,按照版本、32位/64位、線程安全/非線程安全來選擇自己所需要的擴展,具體選項可以在phpinfo();頁面看到。下載完成后,將其放入phppath/ext/目錄下,然后在php.ini中添加extension=php_memcacache.dll;重啟服務(wù)器完成安裝。

在phpinfo()頁面中看到memcache擴展后,說明安裝成功,我們就可以在php腳本中使用關(guān)于memcache的類函數(shù)庫了。

在手冊中我們可以找到許多關(guān)于php的memcache擴展的使用,以下是一個典型的memcache使用流程。

$m=new Memcache();
$m->connect($host,$port);
$m->add($key,$value[,flags,$expire_time]);
$content=$m->get($key);
$m->close();

這是一個簡單的memcache連接程序,在進行memcache分布式存儲時,還需要用到$memcache->addServer()向memcache集群中添加服務(wù)器。

此外,還有g(shù)et(),set(),flush(),delete()等方法,用法都大同小異,在手冊上也能找得到,這里提供一個本站的php手冊下載地址:http://www.fzitv.net/books/6183.html

更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《php緩存技術(shù)總結(jié)》、《PHP數(shù)組(Array)操作技巧大全》、《php字符串(string)用法總結(jié)》、《PHP錯誤與異常處理方法總結(jié)》、《php面向?qū)ο蟪绦蛟O(shè)計入門教程》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總

希望本文所述對大家PHP程序設(shè)計有所幫助。

相關(guān)文章

最新評論

西林县| 枣阳市| 兖州市| 湖州市| 屏山县| 泊头市| 兰州市| 平原县| 陆川县| 南充市| 福鼎市| 临湘市| 黄平县| 托克逊县| 云霄县| 深圳市| 平南县| 安龙县| 习水县| 娄底市| 民权县| 桃江县| 武穴市| 郓城县| 农安县| 成安县| 千阳县| 离岛区| 北碚区| 洪江市| 晋江市| 东乌珠穆沁旗| 武夷山市| 敖汉旗| 剑川县| 佛山市| 海门市| 德格县| 忻州市| 景德镇市| 和田市|