اپنے PHP اور Python ایپس کے ساتھ Memcached سرور استعمال کرکے اپنے ڈیٹا بیس کی کارکردگی کو بہتر بنائیں
اگر آپ نے کبھی اپنے ویب ایپس میں سست روی کا باعث بننے والے ڈیٹا بیس کے زیادہ بوجھ کا درد محسوس کیا ہے اور سوچا ہے کہ "کیا DB سوالات کی وجہ سے ہونے والی تاخیر کو کم کرنے کا کوئی طریقہ ہے؟"، تو اس سوال کا جواب بڑی ہاں میں ہے۔ آپ کی تمام پریشانیوں کو حل کرنے کے لئے ایک دوستانہ پڑوس کی میموری کیش ڈیمون کو میم کیچ کیا گیا ہے! DB کیشنگ DB بوجھ کو کم کرنے اور متحرک ویب ایپلیکیشنز کو تیز کرنے کے آسان ترین طریقوں میں سے ایک ہے۔
Memcached خود کو اعلی کارکردگی، تقسیم شدہ میموری آبجیکٹ کیشنگ سسٹم کے طور پر بیان کرتا ہے، فطرت میں عام ہے، لیکن اصل میں ڈیٹا بیس کے بوجھ کو کم کرکے متحرک ویب ایپلیکیشنز کو تیز کرنے میں استعمال کرنا ہے۔ بریڈ فٹز پیٹرک نے 2003 میں اپنی ویب سائٹ LiveJournal کے لیے تیار کیا۔
اس آرٹیکل میں، ہم دیکھیں گے کہ Ubuntu 20.04 میں Memcached کو کیسے انسٹال اور کنفیگر کیا جائے اور اس کے زبان کے مخصوص کلائنٹس کو دیکھیں۔
شرطیں
انتظامی حقوق کے حامل صارف کے ساتھ Ubuntu 20.04 کے ساتھ نصب ایک سسٹم، یعنی a sudo
صارف
تنصیب
Memcached سرکاری Ubuntu 20.04 ذخیرہ پر دستیاب ہے، Memcached کے علاوہ ہم ایک CLI ٹول بھی انسٹال کرنے جا رہے ہیں libmemcached-tools
Memcached کا انتظام کرنے کے لئے. دونوں کو انسٹال کرنے کے لیے بس درج ذیل کمانڈ کو چلائیں۔
sudo apt memcached libmemcached-tools انسٹال کریں۔
انسٹالیشن کی تصدیق کریں۔
انسٹالیشن مکمل ہونے کے بعد، Memcached ڈیمون خود ہی پس منظر میں شروع ہو جاتا ہے۔ تنصیب کی تصدیق کرنے کے لیے، ہم سے کمانڈ استعمال کر سکتے ہیں۔ libmemcached-tools
Memcached سرور کے اعدادوشمار حاصل کرنے کے لیے پیکیج۔ یا تو بھاگو
memcstat --servers لوکل ہوسٹ
یا
memcstat --servers 127.0.0.1
دی memcstat
کمانڈ چلانے والے سرور کے اعدادوشمار کو ظاہر کرتا ہے۔ مندرجہ بالا کمانڈ کے نتیجے میں آؤٹ پٹ نیچے دکھایا جائے گا۔
مختلف اعدادوشمار جیسے اپ ٹائم
سیکنڈوں میں، ورژن
اور pid
آؤٹ پٹ کے طور پر دکھایا جائے گا. تاہم، اگر کوئی آؤٹ پٹ ظاہر نہیں ہوتا ہے تو یہ ممکن ہے کہ Memcached نہیں چل رہا ہے۔ لہذا، آپ کو Memcached سرور کو شروع کرنے کے لیے درج ذیل کمانڈ کو چلانا چاہیے۔
sudo systemctl start memcached
سسٹم اسٹارٹ اپ پر میمکیچڈ سرور کو چلانے کے لیے درج ذیل کمانڈ کا استعمال کریں۔
sudo systemctl enable memcached
Memcached کو ترتیب دینا
اگر آپ نے ویب سائٹ کے سرور پر ہی اپنا memcached انسٹال کر رکھا ہے، تو کنفیگریشن فائل کو تبدیل کرنے کی ضرورت نہیں ہے کیونکہ memcached کو لوکل ہوسٹ کے ساتھ کام کرنے کے لیے پہلے سے ترتیب دیا گیا ہے۔
دوسری طرف، اگر آپ نے میم کیچڈ کو علیحدہ سسٹم پر انسٹال کیا ہے تو آپ کو ریموٹ سرور کو Memcached سرور تک رسائی کی اجازت دینے کے لیے کنفیگریشن کو تبدیل کرنے کی ضرورت ہوگی۔
Memcached سرور کے لیے ریموٹ ایکسیس ترتیب دینا
Memcached DDoS (ڈسٹری بیوٹڈ ڈینیئل آف سروس) کے حملوں کا شکار ہے۔ فائر وال کے غلط اصول اور کھلے UDP پورٹس آپ کے سرور کو کھلا چھوڑ دیں گے اور DDoS حملوں کا شکار ہو جائیں گے۔
خطرے کو کم کرنے کے لیے، ہم یا تو Memcached کے لیے UDP پروٹوکول کو کنفیگریشن میں غیر فعال کر سکتے ہیں یا صرف قابل اعتماد سرورز کو اجازت دینے کے لیے فائر وال سیٹ کر سکتے ہیں۔
باکس سے باہر، Ubuntu جہاز جس میں TCP یا UDP بندرگاہیں نہیں کھلی ہیں۔ مزید برآں، فائر وال ڈیمون ufw
(غیر پیچیدہ فائر وال) بطور ڈیفالٹ فعال نہیں ہے۔
ہم فائر وال کو فعال کرنے اور Memcached کنفیگریشن قائم کرنے جا رہے ہیں تاکہ ہم DDoS کے خطرے کو کم کر سکیں۔
سب سے پہلے، فعال کریں ufw
درج ذیل کمانڈ کو چلا کر:
sudo systemctl ufw کو فعال کریں۔
پھر شروع کریں۔ ufw
درج ذیل کمانڈ کو چلا کر خدمت کریں:
sudo systemctl start ufw
فائر وال کے چلنے کے ساتھ، ہم آخر کار فائر وال کے اصول ترتیب دے سکتے ہیں۔ سب سے پہلے، SSH کنکشن کی اجازت دینے کے لیے پورٹ 22 کو فعال کریں۔ مطلوبہ سرور تک دور سے رسائی کے لیے SSH کی ضرورت ہے۔
sudo ufw اجازت دیں 22
دوم، آپ کو کلائنٹ کا آئی پی ایڈریس جاننے کی ضرورت ہے، جو کہ ویب ایپلیکیشن ہوسٹ اور سرور کا آئی پی ایڈریس ہے، یعنی میم کیچڈ سرور۔
اس مثال کے لیے، ہم کلائنٹ آئی پی کو مان لیتے ہیں۔ 192.168.0.4
اور Memcached سرور IP ہونا ہے۔ 192.168.0.5
مقامی نیٹ ورک پر۔
لہذا کلائنٹ سرور تک میمکیچڈ سرور کی ریموٹ رسائی کی اجازت دینے کے لئے، چلائیں:
sudo ufw 192.168.0.4 سے کسی بھی پورٹ 11211 کی اجازت دیتا ہے
کو تبدیل کریں۔ 192.168.0.4
اپنے مطلوبہ کلائنٹ آئی پی ایڈریس کے ساتھ۔
اگلا، پر واقع Memcached کنفیگریشن فائل میں ترمیم کریں۔ /etc/memcached.conf
چلانے سے نینو
کمانڈ.
sudo nano /etc/memcached.conf
دی memcached.conf
کنفیگریشن فائل نینو ایڈیٹر کے ساتھ کھل جائے گی، تلاش کریں۔ -l 127.0.0.1
ترتیب میں لائن اور تبدیل کریں 127.0.0.1
اپنے Memcached سرور IP کے ساتھ یا اس مثال میں 192.168.0.5
.
پریس کو تبدیل کرنے کے بعد ctrl+o
کنفیگریشن فائل پر لکھنے کے لیے اور انٹر دبائیں، دبائیں ctrl+x
نینو سے باہر نکلنے کے لیے۔
Memcached سرور کو دوبارہ شروع کریں اور ufw
نیچے دی گئی کمانڈ کو چلا کر فائر وال۔
sudo systemctl restart memcached ufw
اب ہم نے Ubuntu 20.04 پر Memcached سرور کی انسٹالیشن اور کنفیگریشن مکمل کر لی ہے۔
Memcached سرور سے منسلک ہو رہا ہے۔
Memcached سرور استعمال کرنے کے لیے، آپ کو زبان کے لیے مخصوص کلائنٹ انسٹال کرنے کی ضرورت ہوگی۔ خوش قسمتی سے، Memcached کو بہت سی مشہور زبانوں کی حمایت حاصل ہے۔
تو آئیے دیکھتے ہیں انسٹال کرنے کا طریقہ php
اور ازگر
Memcached کے لئے کلائنٹ.
PHP سب سے زیادہ مقبول سرور سائیڈ اسکرپٹنگ لینگویج ہے اور Memcached زیادہ تر ویب ڈویلپرز کے ذریعے PHP سے چلنے والی ویب ایپس کی سرور کی کارکردگی کو بہتر بنانے کے لیے استعمال کیا جاتا ہے۔
php میں memcached سپورٹ انسٹال کرنے کے لیے، رن:
sudo apt php-memcached انسٹال کریں۔
ازگر کے پاس بھی کئی لائبریریاں ہیں جو کام کر سکتی ہیں اور میمکیچڈ سرور کے ساتھ تعامل کر سکتی ہیں جیسے pymemcached
یا python-memcached
.
آپ مندرجہ ذیل pip کمانڈز چلا کر python کے لیے memcached انسٹال کر سکتے ہیں۔
pip install pymemcache
pip انسٹال python-memcached
آخر میں، ہم نے Ubuntu 20.04 میں انسٹالیشن، کنفیگریشن اور Memcached کے چند مخصوص زبان کے کلائنٹس کو دیکھا ہے۔
Memcached کے مزید سخت اور جدید استعمال جاننے کے لیے، Memcached Wiki پر ایک نظر ڈالیں۔