程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> php中內存緩存memcached實例

php中內存緩存memcached實例

編輯:關於PHP編程

Memcached是高性能的,分布式的內存對象緩存系統,用於在動態應用中減少數據庫負載,提升訪問速度。 Memcached由Danga Interactive開發,用於提升LiveJournal.com訪問速度的。LJ每秒動態頁面訪問量幾千次,用戶700萬。Memcached將數據庫負載大幅度降低,更好的分配資源,更快速訪問。

php教程中內存緩存memcached實例


windows下的memcache安裝:
1. 下載memcache的windows穩定版,解壓放某個盤下面,比如在c:memcached
2. 在終端(也即cmd命令界面)下輸入 ‘c:memcachedmemcached.exe -d install

’ 安裝
3. 再輸入: ‘c:memcachedmemcached.exe -d start’ 啟動。note: 以後

memcached將作為windows的一個服務每次開機時自動啟動。這樣服務器端已經安裝完

畢了。
4.下載http://cmy2009.ihost.tw/download,(php_memcache地址)請自己查找對應的

php版本的文件
5. 在c:winntphp.ini 加入一行 ‘extension=php_memcache.dll’
6.重新啟動apache,然後查看一下phpinfo,如果有memcache,那麼就說明安裝成功!

memcached的基本設置:

-p 監聽的端口
-l 連接的ip地址, 默認是本機
-d start 啟動memcached服務
-d restart 重起memcached服務
-d stop|shutdown 關閉正在運行的memcached服務
-d install 安裝memcached服務
-d uninstall 卸載memcached服務
-u 以的身份運行 (僅在以root運行的時候有效)
-m 最大內存使用,單位mb。默認64mb
-m 內存耗盡時返回錯誤,而不是刪除項
-c 最大同時連接數,默認是1024
-f 塊大小增長因子,默認是1.25
-n 最小分配空間,key+value+flags默認是48
-h 顯示幫助

memcache環境測試:
運行下面的php文件,如果有輸出,就表示環境搭建成功。開始領略memcache的魅力把

<?php

$memcache = memcache_connect('localhost', 11211);

if ($memcache) {
$memcache->set("str_key", "string to store in memcached");
$memcache->set("num_key", 123);

$object = new stdclass;
$object->attribute = 'test';
$memcache->set("obj_key", $object);

$array = array('assoc'=>123, 345, 567);
$memcache->set("arr_key", $array);

var_dump($memcache->get('str_key'));
var_dump($memcache->get('num_key'));
var_dump($memcache->get('obj_key'));
}
else {
echo "connection to memcached failed";
}
?>

memcached是高性能的,分布式的內存對象緩存系統,用於在動態應用中減少數據庫教程負載,提升訪問速度。
memcached由danga interactive開發,用於提升livejournal.com訪問速度的。lj每秒動態頁面訪問量幾千次,用戶700萬。memcached將數據庫負載大幅度降低,更好的分配資源,更快速訪問。


為什麼不使用數據庫做這些?

暫且不考慮使用什麼樣的數據庫(ms-sql, oracle, postgres, mysql教程-innodb, etc..), 實現事務(acid,atomicity, consistency, isolation, and durability )需要大量開銷,特別當使用到硬盤的時候,這就意味著查詢可能會阻塞。當使用不包含事務的數據庫(例如mysql-myisam ),上面的開銷不存在,但讀線程又可能會被寫線程阻塞。
memcached從不阻塞,速度非常快。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved