程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> PHP連接、操縱Memcached的原理和教程

PHP連接、操縱Memcached的原理和教程

編輯:關於PHP編程

PHP連接、操縱Memcached的原理和教程


Memcahced是一個開源分布式內存對象緩存系統。稍微大一點的項目經常會使用 Memcached 以減少數據庫的負擔,從而加速web應用的響應速度。網絡上有大量關於 Memcached 安裝的方法以及使用介紹,本文所要說的就是其實 memcached 很簡單,沒有想象的那麼神秘,我們可以簡單的理解為它就是一個緩存服務器應用程序,就像是你裝了個 Mysql 一樣,裝好了之後用賬號密碼IP地址連一下就能使用。

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

第一次用戶發送請求,PHP程序會在訪問db數據庫的同時,將訪問的數據寫入Memcached系統。

PHP連接、操縱Memcached的原理和教程

如圖所示,user發送了req請求,application發送數據請求到database,database在將數據返回給application的同時,將數據緩存到了Memcached服務器。

第二次用戶請求到達,會直接讀取Memcached服務器的緩存,而不是數據庫中的內容,從而減輕了服務器的負擔。

PHP連接、操縱Memcached的原理和教程

本圖顯示,第二次的請求,application直接從Memcached(簡稱Mc)讀取數據。

下面通過一個實例分享一下 memcached  的基本使用方法(類似友情鏈接的一個開發實例)。相信通過這個實例,你就能很清楚的理解了這個東東。

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

memcached是什麼?memcache該何使用?

windows系統下安裝memcache

(1)新建一個數據庫

實例中使用的數據庫表包含一個自增的id,一個標題和一個鏈接字段:

CREATE TABLE demos(
id INT PRIMARY KEY AUTO_INCREMENT,
title VARCHAR(300), 
link VARCHAR(300), 
);

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

<?php
include('db.php');
$memcache = new Memcache;
$memcache->connect('localhost', 11211) or die ("Could not connect");
//緩存服務器中,都是鍵值對,這裡我們設定唯一的鍵
$key = md5('www.crazyant.net'); 
$cache_result = array();
//根據鍵,從緩存服務器中獲取它的值
$cache_result = $memcache->get($key); 
//如果存在該鍵對應的值,說明緩存中存在該內容
if($cache_result){
	//那我們直接取出緩存的內容就可以了
	$demos_result=$cache_result;
} else {
	//如果緩存中沒有該鍵對應的值數據,說明請求是第一次到達
	//首先,我們需要從數據庫中取出該值
	$v=mysql_query("select * from demos order by id desc");
	while($row=mysql_fetch_array($v)){
		//取出的內容就是我們需要的
		$demos_result[]=$row; 
	}
	//最後,將這次從數據庫取出的內容,放到Memcached緩存服務器,這裡就是緩存的精髓
	$memcache->set($key, $demos_result, MEMCACHE_COMPRESSED, 1200); 
}
//前面的所有操作,最終返回了我們需要的數據
foreach($demos_result as $row){
	echo '<a href='.$row['link'].'>'.$row['title'].'</a>';
}
?>

下面是用於連接數據庫的代碼文件 db.php

<?php
$mysql_hostname="localhost";
$mysql_user="username";
$mysql_password="password";
$mysql_database="database";
$bd=mysql_connect($mysql_hostname, $mysql_user, $mysql_password) or die("Opps some thing went wrong");
mysql_select_db($mysql_database, $bd) or die("Opps some thing went wrong");
?>

您可能感興趣的文章

  • PHP連接access數據庫的二種方法
  • 如何通過命令行查看memcache當前運行的狀態
  • PHP實現同服務器多個二級域名共享 SESSION 數據
  • windows下memcache的安裝與配置教程
  • 給php初學者推薦的一本php經典教程書籍
  • php獲取目錄所有文件並將結果保存到數組的程序
  • php獲取漢字拼音首字母的函數(真正可以使用的)
  • 兄弟連php高級編程視頻教程下載

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