۱۳۹۲ شهریور ۱۸, دوشنبه

Memcached با PHP

مطالبی رو سعی میکنم توی وبلاگم قرار بدم که بتونم یک سری اطلاعات به برنامه نویس ها یا طراحان وب منتقل کنم که دونستن این اطلاعات میتونه خیلی تو کارشون به درد بخوره نه قصد آموزش کامل دارم نه کپی پیست خالص

به نظر من خیلی وقت ها ما نیاز به یک استارت داریم تا روشن بشیم اگر بتونیم با دونستن کارایی و مقدمه از یک مقاله به اهمیت اون پی ببریم حتما سراغ مطالب و مقالات بیشتر در رابطه با اون خواهیم رفت

در این پست میخوام راجع به memcached بنویسم شما زمانی نیاز به memcached خواهید داشت که بخواهید سرعت لود سرور دیتابیستون رو افزایش بدید



ممکش یا memcached این توزیع اپن سورس یا سیستم کش اشیا، حافظه memory object caching system :D

به منظور کمک به افزایش سرعت برنامه دینامیک یا پویا ی تحت وب شما با افزایش سرعت لود سرور دیتایس استفاده میشود

واقعا درک فارسیش خیلی سخت تر از انگلیسیشه :D

این سیستم برای سایت های با ترافیک بالا خیلی میتونه مفید باشه

بهتره بدونید در انجمن ترکتور اف سی Forum.TractorFC.com نیز از این سیستم استفاده شده است .

به عنوان مثال در نظر بگیرید یک دیتابیس با جدول demo با ستون های id, title , link داریم

درخواست اول

وقتی که بازدید کننده برنامه ی تحت وب یا همون سایت رو میخواد ببینه در ابتدا این درخواست یک بار به سرور دیتابیس فرستاده میشه و اگر از  سیستم memcached استفاده کرده باشیم همزمان با درخواست اول داده ها در سرور memcached نیز ذخیره خواهند شد

 

درخواست دوم

وقتی دومین درخواست ارسال میشه این بار دیگه داده از سرور memcached گرفته میشه و سرور دیتایس کاری انجام نمیده

پس در نتیجه این باعث خواهد شد که درخواست های تکراری و فشار های ناشی از اون بر روی سرور دیتایس کم بشه و سرعت لود دیتابیس بالا خواهد رفت

 

نصب memcached

منابع خوب برای نصب ممکش این سایت ها میتونن باشن :

INSTALLING MEMCACHED ON AMAZON LINUX AMI - QUICK AND EASY.
INSTALLING MEMCACHED ON Windows.
install Memcached on Xampp on Windows 7
Memcached for PHP 5.3 on Windows 7.

 

یک مثال برای استفاده از memcached

index.php
<?php
include('db.php');
$memcache = new Memcache;
$memcache->connect('localhost', 11211) or die ("Could not connect");

$key = md5('List tractorfc'); // Unique Words
$cache_result = array();
$cache_result = $memcache->get($key); // Memcached object

if($cache_result)
{
// Second User Request
$demos_result=$cache_result;
}
else
{
// First User Request
$v=mysql_query("select * from demos order by id desc");
while($row=mysql_fetch_array($v))
$demos_result[]=$row; // Results storing in array
$memcache->set($key, $demos_result, MEMCACHE_COMPRESSED, 1200);
// 1200 Seconds
}

// Result
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");
?>

 

هیچ نظری موجود نیست:

ارسال یک نظر