PHP連線 操縱Memcached的原理和教程

2021-07-10 02:50:04 字數 3757 閱讀 9241

memcahced是乙個開源分布式記憶體物件快取系統。稍微大一點的專案經常會使用 memcached 以減少資料庫的負擔,從而加速web應用的響應速度。網路上有大量關於 memcached 安裝的方法以及使用介紹,本文所要說的就是其實 memcached 很簡單,沒有想象的那麼神秘,我們可以簡單的理解為它就是乙個快取伺服器應用程式,就像是你裝了個 mysql 一樣,裝好了之後用賬號密碼ip位址連一下就能使用。

首頁簡單的介紹一下 memcached 的原理

第一次使用者傳送請求,php程式會在訪問db資料庫的同時,將訪問的資料寫入memcached系統。

第二次使用者請求到達,會直接讀取memcached伺服器的快取,而不是資料庫中的內容,從而減輕了伺服器的負擔。

下面的案例假設你已經安裝好了 memcached 服務,如果沒有安裝的話,請參考本站:

memcached是什麼?memcache該何使用?

windows系統下安裝memcache

(1)新建乙個資料庫

例項中使用的資料庫表包含乙個自增的id,乙個標題和乙個鏈結字段:

檢視**列印

1createtabledemos(

2idintprimarykeyauto_increment,

3titlevarchar(300),

4linkvarchar(300),

5);

(2)程式部分(程式的注釋會讓你很輕鬆的理解 memcached 的使用)

檢視**列印

01<?php

02include('db.php');

03$memcache=newmemcache;

04$memcache->connect('localhost', 11211)ordie("could not connect");

05//快取伺服器中,都是鍵值對,這裡我們設定唯一的鍵

06$key= md5('www.crazyant.net');

07$cache_result=array();

08//根據鍵,從快取伺服器中獲取它的值

09$cache_result=$memcache->get($key);

10//如果存在該鍵對應的值,說明快取中存在該內容

11if($cache_result)else

22//最後,將這次從資料庫取出的內容,放到memcached快取伺服器,這裡就是快取的精髓

23$memcache->set($key,$demos_result, memcache_compressed, 1200);

24}

25//前面的所有操作,最終返回了我們需要的資料

26foreach($demos_resultas$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)ordie("opps some thing went wrong");

7mysql_select_db($mysql_database,$bd)ordie("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...