به نظر من خیلی وقت ها ما نیاز به یک استارت داریم تا روشن بشیم اگر بتونیم با دونستن کارایی و مقدمه از یک مقاله به اهمیت اون پی ببریم حتما سراغ مطالب و مقالات بیشتر در رابطه با اون خواهیم رفت
در این پست میخوام راجع به 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");
?>
هیچ نظری موجود نیست:
ارسال یک نظر