memcahced是乙個開源分布式記憶體物件快取系統。稍微大一點的專案經常會使用 memcached 以減少資料庫的負擔,從而加速web應用的響應速度。網路上有大量關於 memcached 安裝的方法以及使用介紹,本文所要說的就是其實 memcached 很簡單,沒有想象的那麼神秘,我們可以簡單的理解為它就是乙個快取伺服器應用程式,就像是你裝了個 mysql 一樣,裝好了之後用賬號密碼ip位址連一下就能使用。
首頁簡單的介紹一下 memcached 的原理
第一次使用者傳送請求,php程式會在訪問db資料庫的同時,將訪問的資料寫入memcached系統。
第二次使用者請求到達,會直接讀取memcached伺服器的快取,而不是資料庫中的內容,從而減輕了伺服器的負擔。
下面的案例假設你已經安裝好了 memcached 服務,如果沒有安裝的話,請參考本站:
memcached是什麼?memcache該何使用?
windows系統下安裝memcache
(1)新建乙個資料庫
例項中使用的資料庫表包含乙個自增的id,乙個標題和乙個鏈結字段:
檢視**列印
1
create
table
demos(
2
id
int
primary
key
auto_increment,
3
title
varchar
(300),
4
link
varchar
(300),
5
);
(2)程式部分(程式的注釋會讓你很輕鬆的理解 memcached 的使用)
檢視**列印
01
<?php
02
include
(
'db.php'
);
03
$memcache
=
new
memcache;
04
$memcache
->connect(
'localhost'
, 11211)
or
die
(
"could not connect"
);
05
//快取伺服器中,都是鍵值對,這裡我們設定唯一的鍵
06
$key
= md5(
'www.crazyant.net'
);
07
$cache_result
=
array
();
08
//根據鍵,從快取伺服器中獲取它的值
09
$cache_result
=
$memcache
->get(
$key
);
10
//如果存在該鍵對應的值,說明快取中存在該內容
11
if
(
$cache_result
)
else
22
//最後,將這次從資料庫取出的內容,放到memcached快取伺服器,這裡就是快取的精髓
23
$memcache
->set(
$key
,
$demos_result
, memcache_compressed, 1200);
24
}
25
//前面的所有操作,最終返回了我們需要的資料
26
foreach
(
$demos_result
as
$row
)
29
?>
下面是用於連線資料庫的**檔案 db.php
檢視**列印
1
<?php
2
$mysql_hostname
=
"localhost"
;
3
$mysql_user
=
"username"
;
4
$mysql_password
=
"password"
;
5
$mysql_database
=
"database"
;
6
$bd
=mysql_connect(
$mysql_hostname
,
$mysql_user
,
$mysql_password
)
or
die
(
"opps some thing went wrong"
);
7
mysql_select_db(
$mysql_database
,
$bd
)
or
die
(
"opps some thing went wrong"
);
關於Memcache的連線
addserver 在說memcache的長連線 pconnect 和短連線 connect 之前要先說說memcache的addserver,memcache的addserver是增加乙個伺服器到連線池中 addserver沒有連線到伺服器的動作,所以在memcache程序沒有啟動的時候,執行ad...
php使用memcache連線資料庫展示資料
header content type text html charset utf 8 用於執行所有結果集的sql語句,並將結果集快取到memcached伺服器中 param string sql 有結果集的查詢語句sql param object memcache memcache類的物件 ret...
memcache使用例項 PHP
首先,判斷 memcache 中是否存在key,如果有則從memcache中取值 如果沒有相應的key,則從去網頁中抓取資料,如果抓取成功,則存入db,寫入memcache並讀取,如果抓取不成功,則直接 mysql 中取值,並將取出來的值放入memcache。include inc common.i...