نصب و پیکربندی Memcached در لینوکس اوبونتو و centos
اگر قصد پیاده سازی یک وب اپلیکیشن قدرتمند دارید و سرعت آن از اولویت های شماست، نصب و پیکربندی Memcached در لینوکس از بهترین ایده هایی است که می تواند شما را به هدفتان برساند.
Memcached یک سرویس کش حافظه است که به کمک آن می توانید داده ها و اشیا پرکاربرد را در حافظه رم ذخیره کنید. این کار باعث کاهش بار پایگاه داده و فرکانس خواندن داده ها از منابع خارجی مثل پایگاه داده ها یا API ها و در نتیجه، ارتقا سرعت اپلیکیشن های داینامیک می شود.
با خرید سرور مجازی لینوکس هم می توانید یک زیرساخت قوی برای اپلیکشن خود تهیه کنید تا به خوبی از عهده مدیریت سرویس های مکملی مثل Memcached بربیاید.
پیش نیازهای نصب Memcached در لینوکس
- سیستم اوبونتو نسخه 18.4 به بعد یا centos نسخه 5 به بعد
- دسترسی به ترمینال
- برخورداری از امتیازات روت یا sudo
- php و آپاچی برای اپلیکیشن مبتنی بر php
- python برای اپلیکیشن مبتنی بر پایتون
مراحل نصب Memcached در لینوکس
با اجرای ترتیبی مراحل زیر می توانید سیستم Memcached را در سیستم لینوکس خود نصب کنید:
۱. پکیج های سیستمی را آپدیت کنید.
برای نصب Memcached در لینوکس، ابتدا باید مخازن سیستم را آپدیت کنید:
اوبونتو
sudo apt-get update
Centos
sudo yum update
۲. Memcached را نصب کنید.
برای نصب Memcached می توانید از دستور زیر استفاده کنید:
نصب Memcached در اوبونتو
sudo apt-get install memcached
نصب Memcached در CentOS
sudo yum install memcached
Memcached با یک سری پکیج های وابسته همراه است که نصب آنها نیاز به تایید شما دارد. در طول پروسه نصب Memcached، حواستان به این تایید ها باشد تا تمام پکیج های موردنیاز با موفقیت نصب شوند.
۳. Ibmemcached را نصب کنید.
Ibmemcached یک ابزار خط فرمان مخصوص مدیریت سیستم Memcached است. اگر می خواهید به جای ترمینال لینوکس، از این ابزار برای کار کردن Memcached استفاده کنید، حتماً باید ابتدا آن را نصب کنید:
اوبونتو
sudo apt install libmemcached-tools
Centos
sudo yum install libmemcached
۴. وضعیت نصب Memcached را بررسی کنید.
اکنون که ابزار Memcached و تمام وابستگی های آن را نصب کرده اید، وقت آن است که ورژن و وضعیت این سرویس را بررسی کنید.
برای مشاهده نسخه نصب شده Memcached می توانید از دستور زیر استفاده کنید:
memcached --version
حالا وقت آن است که وضعیت اجرای آن را هم بررسی کنید:
sudo systemctl status memcached
با دیدن پیام سبز active می توانید مطمئن باشید که پروسه نصب Memcached را با موفقیت پشت سرگذاشته اید و الان نوبت پیکربندی سیستم Memcached در لینوکس است.
پیکربندی Memcached در لینوکس
نحوه پیکربندی memcached در لینوکس به نیازها و مشخصات اپلیکیشن شما بستگی دارد. ما در حد امکان سعی می کنیم پیکربندی های ضروری و پرکاربرد را در این بخش پوشش دهیم.
* بعد از ایجاد هر گونه تغییر کوچک و بزرگ در Memcached، ریستارت سرویس مربوط به آن را فراموش نکنید. این کار برای ثبت و اعمال تغییرات ضروری است:
sudo systemctl restart memcached
فعال سازی سرویس Memcached در سیستم لینوکس
اگر می خواهید با هر بار ریبوت سیستم، سرویس Memcached هم به صورت خودکار اجرا شود، دستور زیر را اجرا کنید:
sudo systemctl enable memcached.service
تغییر آدرس آی پی
اگر دستور بررسی وضعیت را اجرا کنید، با خروجی زیر مواجه خواهید شد:
می بینید که سیستم Memcached به طور پیش فرض روی لوکال هاست تنظیم شده است و به پورت 11211 گوش می دهد.
اگر اپلیکیشن php یا python شما روی یک سرور ریموت نصب شده است و شما می خواهید سرویس Memcached را برای آن راه اندازی کنید، باید آدرس آی پی سرور ریموت را جایگزین لوکال هاست کنید.
پس، فایل پیکربندی Memcached را باز کنید:
sudo nano /etc/memcached.conf
خط l 127.0.0.1- را پیدا کنید و 127.0.0.1 را با آدرس آیپی سرور ریموت جایگزین کنید.
با استفاده از کلید ترکیبی Ctrl+O و Ctrl+X فایل پیکربندی را ذخیره کرده و ببندید.
ارائه مجوز انتقال ترافیک Memcached
برای این کار باید قانون allow مربوط به ترافیک Memcached را در فایروال سیستم تعریف کنید.
اگر به استفاده از لوکال هاست ادامه می دهید، دستور زیر را اجرا کنید:
sudo ufw allow 11211
ولی اگر آدرس آی پی سرور را جایگزین لوکال هاست کرده اید، دستور زیر را اجرا کنید:
sudo ufw allow from address-ip to any port 11211
افزایش فضای رم اختصاصی برای Memcached
سیستم Memcached به طور پیش فرض از ۶۴ مگابایت حافظه بهره مند است ولی اگر می خواهید فضای بیشتری از رم (مثلاً ۲۵۶ مگابایت) را به آن اختصاص دهید، مراحل زیر را طی کنید:
برای تغییر فضای رم لازم برای Memcached، ابتدا باید فایل پیکربندی را باز کنید:
sudo nano /etc/memcached.conf
خط m- را پیدا کنید و آن را به صورت زیر تغییر دهید:
-m 256
فعال سازی Memcached برای اپلیکیشن های PHP
اگر می خواهید از این سیستم کش برای اپلیکیشن های مبتنی بر php مثل وردپرس، Magento استفاده کنید، ابتدا باید پکیج های لازم برای آن را نصب کنید:
* از نصب php و آپاچی در سرور لینوکس خود مطمئن شوید.
اوبونتو
sudo apt install php-memcached libapache2-mod-php php php-cli
Centos
sudo yum install php-memcached libapache2-mod-php php php-cli
تست کارکرد Memcached برای php
برای اینکه مطمئن شوید، اتصال سیستم Memcached به اپلیکیشن php با موفقیت انجام شده است، می توانید مراحل زیر را طی کنید:
در مسیر اصلی وبسایت یا وب اپلیکیشن خود یک فایل به اسم php.info ایجاد کنید:
sudo nano /var/www/html/phpinfo.php
کد زیر را در داخل آن کپی-پیست کنید:
<?php
phpinfo();
?>
با استفاده از کلید ترکیبی Ctrl+O و Ctrl+X این فایل را ذخیره کرده و ببندید.
مرورگر خود را باز کنید و به آدرس زیر بروید:
http://server-ip-address/phpinfo.php
این آدرس، اطلاعات php را به شما نشان می دهد.
اگر به سمت پایین اسکرول کنید، می توانید اطلاعات مربوط به Memcached را پیدا کنید. این اطلاعات نشان می دهند که افزونه php-memcached فعال است و برای php کار می کند.
فعال سازی Memcached برای اپلیکیشن های پایتون
اگر در زمینه توسعه اپلیکیشن های پایتون فعالیت می کنید و می خواهید از سیستم Memcached برای ارتقا سرعت و عملکرد آنها استفاده کنید، باید کتابخانه های مربوط به آن را نصب کنید.
* از نصب پایتون در سرور لینوکس مطمئن شوید.
برای نصب این کتابخانه ها می توانید از مدیر بسته پایتون یعنی pip استفاده کنید:
pip install pymemcache
pip install python-memcached
تست عملکرد سیستم کش Memcached
گفتیم که این سیستم با ذخیره سازی موقت داده ها در حافظه رم، کاری می کند که سرعت دسترسی به آنها بالا برود. حالا اگر مراحل نصب و پیکربندی Memcached در لینوکس را طی کرده اید و پکیج های لازم برای اپلکیشن های PHP را نصب کردید، بیایید یک تست کوچک را اجرا کنیم.
برای این کار، ابتدا در مسیر اصلی وبسایت یا اپلیکیشن یک فایل تحت عنوان Test.php ایجاد کنید:
sudo nano /var/www/html/test.php
سپس تکه کد php زیر را در آن کپی – پیست کنید:
<?php
try
{
$memcached = new Memcached();
$memcached->addServer("127.0.0.1", 11211);
$response = $memcached->get("key_cache");
if($response==true)
{
echo "Result coming from caching";
echo $response;
}
else
{
echo "Cache is not created yet, reload again to see changes";
$memcached->set("key_cache", "Hooray! Memcache is working now ...") ;
}
}
catch (exception $e)
{
echo $e->getMessage();
}
?>
این کد، با استفاده از کلاس Memcached یک اتصال به سرویس کش ایجاد می کند و از آن برای ذخیره و بازیابی داده ها استفاده می کند. این اتصال از طریق آدرس آی پی 127.0.0.1 و پورت 11211 انجام می شود.
خط memcached->get(“key_cache”)$ برای بازیابی مقدار مربوط به key_cache استفاده می شود.
اگر پاسخ مربوط به key_cache دارای مقدار true باشد، خروجی Result coming from caching همراه با مقدار key_cache نمایش داده می شود که نشان می دهد مقداری با کلید key_cache در حافظه Memcached وجود دارد.
در غیر این صورت، مقداری با کلید key_cache در Memcached وجود ندارد و پیام Cache is not created yet, reload again to see change ظاهر می شود.
سپس، خط memcached->set$ برای ذخیره سازی کلید key_cache با مقدار Hooray! Memcache is working now اجرا می شود. اگر صفحه را رفرش کنید، این بار با پیام زیر مواجه خواهید شد.
با مراجعه به http://your-server-ip-address/test.php میتوانید خروجی این کد را بررسی کنید.
سخن آخر
سیستم Memcached برای ذخیره سازی داده ها در بخشی از رم استفاده می شود تا سرعت دسترسی به آنها بالاتر باشد و اپلیکیشن در ارائه داده ها، عملکرد سریع تری داشته باشید. با اجرای مراحل نصب و پیکربندی Memcached در لینوکس اوبونتو و centos می توانید بلافاصله شروع به استفاده از آن در اپلکیشن های خود کنید.