آموزش نصب Memcached در Centos و اوبونتو ubuntu
آموزش نصب Memcached
Memcached یک سیستم کش رایگان و بسیار قوی برای ذخیره کردن دیتاهای key-value در Ram هست، به عبارت دیگه این کش برای نگهداری داده های Dynamic و کش کردن Object و Query ها استفاده میشه و باعث افزایش سرعت سایت و اپ ها میشه، چون تعداد دفعاتی که باید به دیتابیس مراجعه میشه توسط این کش کاهش پیدا میکنه و در نتیجه سرعت پاسخگویی بالا میره و محتوی این اطلاعات کش شده بصورت موقت در ram نگهداری میشه.در این آموزش نحوه نصب memcached رو در سیستم عامل centos 7 و اوبونتو آموزش میدیم.
نصب Memcached در اوبونتو (ubuntu)
بسته memcached در مخازن پیش فرض اوبونتو 20.04 گنجانده شده است. برای نصب آن ، دستور زیر را به عنوان root یا کاربر دارای امتیازات sudo وارد کنید
sudo apt update
sudo apt install memcached libmemcached-tools
بسته libmemcached-tools
ابزارهای خط فرمان را ارائه می دهد که می توانید از آنها برای مدیریت سرور memcached استفاده کنید. پس از اتمام نصب ، سرویس memcached بطور خودکار شروع می شود. برای بررسی وضعیت سرویس ، دستور وارد کنید و خروجی را مشاهده کنین
sudo systemctl status memcached
memcached.service - memcached daemon
Loaded: loaded (/lib/systemd/system/memcached.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2020-07-13 19:32:01 UTC; 23s ago
شما memcached را روی سرور Ubuntu 20.04 خود نصب کرده اید ، و می توانید شروع به استفاده از آن کنید.
پیکربندی Memcached در اوبونتو
در این قسمت میتونیم کانفیگ حرفه ای تری برای تغییر پورت ، تعدا کانکشن ها ، میزان استفاده از رم رو انجام بدیم ، همونطور که در قسمت های بالا توضیح دادیم باید فایل تنظیمات /etc/memcached.conf
رو باز کنین و مقادیر پارامتر های زیر رو اضافه کنین. در قسمت port ، میتونین پورت پیش فرض 11211 رو عوض کنین که در اینجا 1447 قرار دادیم ، اجرای یوزر memcached به عنوان USER ، حداکثر تعدا کانکشن که 3000 قرار داده شده و حداکثر میزان کش کردن در رم که 4 گیگ در نظر گرفته شده.
PORT=”1447″ USER=”memcached” MAXCONN=”3000″ CACHESIZE=”4096″ OPTIONS="-l 127.0.0.1 -U 0"
بعد از انجام تغییرات سرویس Memcached را مجدد اجرا کنید
sudo systemctl restart memcached
اتصال به Memcached در Ubuntu 20.04
برای استفاده از Memcached به عنوان یک کش پایگاه داده برای برنامه های PHP مانند WordPress ، Drupal ، Joomla یا Magento ، باید افزونه php-memcached را نصب کنید
sudo apt install php-memcached
برای پایتون نیز چندین کتابخانه پایتون برای تعامل با memcache وجود دارد. می توانید کتابخانه مورد نظر خود را با استفاده از pip نصب کنید
pip install pymemcache
pip install python-memcached
نصب Memcached در Centos 7
بسته های نصب memcached بصورت پیش فرض در مخازن سیستم عامل centos 7 موجود هست و برای نصب از کد زیر استفاده میکنیم.
sudo yum install memcached libmemcached
بسته libmemcached
شامل چندین ابزار خط فرمان برای مدیریت memcached هست، پس از اتمام نصب ، سرویس Memcached را شروع و فعال کنید.
sudo systemctl start memcached
sudo systemctl enable memcached
کانفیگ Memcached
سیستم کش memcached با ویرایش فایل زیر امکان کانفیگ رو فراهم میکنه
/etc/sysconfig/memcached
بصورت پیش فرض ، این سیستم کش ، تمام اطلاعات رو برای کش کردن بررسی میکنه ، در این بخش نحوه تنظیمش برای سرویس لوکال یا ریموت رو بررسی میکنیم. در صورت پیکربندی نامناسب Memcached می تواند برای انجام حمله (DDoS) بشه.
دسترسی از طریق لوکال
اگه کانکشن های کلاینت فقط در همون سروری که کش نصب شده در حال اجرا هستن ، توصیه میکنیم که سرویس memcached رو فقط برای برای گوش کردن و پاسخگویی در localhost تنظیم کنین. برای انجام اینکار ابتدا فایل زیر رو باز میکنیم.
sudo nano /etc/sysconfig/memcached
و در مقدار OPTION ، پارامتر -l 127.0.0.1
رو اضافه میکنیم ، این دستور Memcached فقط به رابط مشخص شده متصل می شود یعنی به localhost.
OPTIONS="-l 127.0.0.1"
سپس برای اعمال تعییرات ، سرویس کش رو ریستارت میکنیم
sudo systemctl restart memcached
دسترسی از ریموت (Remote Access)
اگر برنامه ای که به Memcached متصل خواهد شد روی یک سرور از راه دور میزبانی شده است ، باید فایروال سرور رو پیکربندی کنید و اجازه دسترسی به پورت Memcached 11211 را فقط برای دسترسی IP کلاینت ریموت بدین.در این آموزش بصورت پیش فرض از FirewallD استفاده میکنیم و IP کلاینت برای اتصال هم 192.168.100.20
هست که باید پورت 11211 رو برای این IP باز کنیم
sudo firewall-cmd --new-zone=memcached --permanent
sudo firewall-cmd --zone=memcached --add-port=11211/udp --permanent
sudo firewall-cmd --zone=memcached --add-port=11211/tcp --permanent
sudo firewall-cmd --zone=memcached --add-source=192.168.100.30/32 --permanent
sudo firewall-cmd --reload
حالا که فایروال تنظیم شد باید IP کلاینت رو برای دسترسی به memcached باز کنیم. ابتدا فایل زیر رو باز میکنیم.
sudo nano /etc/sysconfig/memcached
بعد مقدار -l 192.168.100.20
رو در پارامتر OPTIONS
قرار میدیم
OPTIONS="-l 192.168.100.20"
و سرویس Memcached رو ریستارت میکنیم
sudo systemctl restart memcached
اتصال به Memcached
برای اتصال به Memcached از طریق زبانهای برنامه نویسی مثل PHP ، Python نیاز به نصب extension دارین.
PHP : برای استفاده Memcached به عنوان کش دیتابیس در برنامه های PHP مثل وردپرس ، دروپال ، مجنتو و … نیاز به نصب اکستنشن php-pecl-memcached
هست.
yum install php-pecl-memcache
yum install perl-Cache-Memcached
python : برای نصب کتابخونه کش در پایتون هم از کدهای زیر استفاده میکنیم
yum install python-memcached
کانفیگ حرفه ای memcached
در این قسمت میتونیم کانفیگ حرفه ای تری برای تغییر پورت ، تعدا کانکشن ها ، میزان استفاده از رم رو انجام بدیم ، همونطور که در قسمت های بالا توضیح دادیم باید فایل تنظیمات /etc/sysconfig/memcached
رو باز کنین و مقادیر پارامتر های زیر رو اضافه کنین. در قسمت port ، میتونین پورت پیش فرض 11211 رو عوض کنین که در اینجا 1337 قرار دادیم ، اجرای یوزر memcached به عنوان USER ، حداکثر تعدا کانکشن که 2000 قرار داده شده و حداکثر میزان کش کردن در رم که 4 گیگ در نظر گرفته شده.
PORT=”1337″ USER=”memcached” MAXCONN=”2000″ CACHESIZE=”4096″ OPTIONS="-l 127.0.0.1 -U 0"