เพิ่มประสิทธิภาพฐานข้อมูลของคุณโดยใช้เซิร์ฟเวอร์ Memcached กับแอป PHP และ Python
หากคุณเคยรู้สึกเจ็บปวดจากการโหลดฐานข้อมูลที่สูงซึ่งทำให้เว็บแอปของคุณทำงานช้าลงและสงสัยว่า "มีวิธีใดบ้างที่จะลดเวลาแฝงที่เกิดจากการสืบค้นฐานข้อมูล" คำตอบสำหรับคำถามนั้นก็คือใช่ Memcached ภูตแคชหน่วยความจำเพื่อนบ้านที่เป็นมิตรพร้อมให้คุณแก้ปัญหาทั้งหมดแล้ว! การแคชฐานข้อมูลเป็นวิธีที่ง่ายที่สุดวิธีหนึ่งในการบรรเทาการโหลด DB และเพิ่มความเร็วให้กับเว็บแอปพลิเคชันแบบไดนามิก
Memcached กำหนดตัวเองว่ามีประสิทธิภาพสูง ระบบการแคชอ็อบเจ็กต์หน่วยความจำแบบกระจาย ซึ่งมีลักษณะทั่วไป แต่เดิมมีจุดประสงค์เพื่อใช้ในการเร่งความเร็วเว็บแอปพลิเคชันแบบไดนามิกโดยบรรเทาการโหลดฐานข้อมูล พัฒนาโดย Brad Fitzpatrick สำหรับเว็บไซต์ LiveJournal ในปี 2546
ในบทความนี้ เราจะมาดูวิธีการติดตั้งและกำหนดค่า Memcached ใน Ubuntu 20.04 และดูไคลเอนต์เฉพาะภาษาของมัน
ข้อกำหนดเบื้องต้น
ระบบที่ติดตั้งกับ Ubuntu 20.04 โดยมีผู้ใช้ที่มีสิทธิ์ของผู้ดูแลระบบ นั่นคือ a sudo
ผู้ใช้
การติดตั้ง
Memcached มีอยู่ในที่เก็บ Ubuntu 20.04 อย่างเป็นทางการ นอกเหนือจาก Memcached เราจะติดตั้งเครื่องมือ CLI ที่รู้จักกันในชื่อ libmemcached-tools
เพื่อจัดการ Memcached เพียงเรียกใช้คำสั่งต่อไปนี้เพื่อติดตั้งทั้ง
sudo apt ติดตั้ง memcached libmemcached-tools
ตรวจสอบการติดตั้ง
หลังจากการติดตั้งเสร็จสิ้น Memcached daemon จะเริ่มทำงานในเบื้องหลังด้วยตัวเอง ในการตรวจสอบการติดตั้ง เราสามารถใช้คำสั่งจาก libmemcached-tools
แพ็คเกจเพื่อรับสถิติเซิร์ฟเวอร์ Memcached ไม่ว่าจะวิ่ง
memcstat --เซิร์ฟเวอร์ localhost
หรือ
memcstat --เซิร์ฟเวอร์ 127.0.0.1
ดิ memcstat
คำสั่งแสดงสถิติการทำงานของเซิร์ฟเวอร์ คำสั่งดังกล่าวจะส่งผลให้ผลลัพธ์ที่แสดงด้านล่าง
สถิติต่างๆเช่น เวลาทำงาน
ในไม่กี่วินาที รุ่น
และ pid
จะแสดงเป็นเอาต์พุต อย่างไรก็ตาม หากไม่มีการแสดงผล เป็นไปได้ว่า Memcached ไม่ทำงาน ดังนั้น คุณต้องเรียกใช้คำสั่งต่อไปนี้เพื่อเริ่มเซิร์ฟเวอร์ Memcached
sudo systemctl เริ่ม memcached
ในการเรียกใช้เซิร์ฟเวอร์ Memcached เมื่อเริ่มต้นระบบ ให้ใช้คำสั่งต่อไปนี้
sudo systemctl เปิดใช้งาน memcached
การกำหนดค่า Memcached
หากคุณติดตั้ง memcached ไว้บนเซิร์ฟเวอร์ของเว็บไซต์ คุณไม่จำเป็นต้องเปลี่ยนไฟล์การกำหนดค่า เนื่องจาก memcached นั้นได้รับการกำหนดค่าไว้ล่วงหน้าเพื่อทำงานกับ localhost
ในทางกลับกัน หากคุณได้ติดตั้ง Memcached บนระบบที่แยกจากกัน คุณจะต้องเปลี่ยนการกำหนดค่าเพื่อให้เซิร์ฟเวอร์ระยะไกลสามารถเข้าถึงเซิร์ฟเวอร์ Memcached ได้
การตั้งค่าการเข้าถึงระยะไกลสำหรับเซิร์ฟเวอร์ Memcached
Memcached มีความเสี่ยงต่อการโจมตี DDoS (Distributed Denial of Service) กฎไฟร์วอลล์ที่ไม่ถูกต้องและพอร์ต UDP ที่เปิดอยู่จะทำให้เซิร์ฟเวอร์ของคุณเปิดกว้างและเสี่ยงต่อการโจมตี DDoS
เพื่อลดความเสี่ยง เราสามารถปิดใช้งานโปรโตคอล UDP สำหรับ Memcached ในการกำหนดค่าหรือตั้งค่าไฟร์วอลล์เพื่ออนุญาตเซิร์ฟเวอร์ที่เชื่อถือได้เท่านั้น
แกะกล่อง Ubuntu โดยไม่มีพอร์ต TCP หรือ UDP เปิดอยู่ นอกจากนี้ ไฟร์วอลล์ daemon ufw
(ไฟร์วอลล์ที่ไม่ซับซ้อน) ไม่ได้เปิดใช้งานตามค่าเริ่มต้น
เราจะเปิดใช้งานไฟร์วอลล์และตั้งค่าการกำหนดค่า Memcached เพื่อให้เราสามารถบรรเทาช่องโหว่ DDoS ได้
ขั้นแรกให้เปิดใช้งาน ufw
โดยรันคำสั่งต่อไปนี้:
sudo systemctl เปิดใช้งาน ufw
จากนั้นเริ่ม ufw
บริการโดยใช้คำสั่งด้านล่าง:
sudo systemctl start ufw
เมื่อไฟร์วอลล์ทำงาน เราสามารถตั้งค่ากฎไฟร์วอลล์ได้ในที่สุด ประการแรก เปิดใช้งานพอร์ต 22 เพื่ออนุญาตการเชื่อมต่อ SSH จำเป็นต้องใช้ SSH เพื่อเข้าถึงเซิร์ฟเวอร์ที่ต้องการจากระยะไกล
sudo ufw อนุญาต 22
ประการที่สอง คุณจำเป็นต้องทราบที่อยู่ IP ของไคลเอ็นต์ นั่นคือโฮสต์เว็บแอปพลิเคชันและที่อยู่ IP ของเซิร์ฟเวอร์ นั่นคือเซิร์ฟเวอร์ Memcached
สำหรับกรณีนี้ ให้เราถือว่า IP ของไคลเอ็นต์เป็น 192.168.0.4
และ IP ของเซิร์ฟเวอร์ Memcached เป็น 192.168.0.5
บนเครือข่ายท้องถิ่น
ดังนั้นเพื่ออนุญาตการเข้าถึงเซิร์ฟเวอร์ memcached จากระยะไกลไปยังเซิร์ฟเวอร์ไคลเอนต์ ให้รัน:
sudo ufw อนุญาตจาก 192.168.0.4 ไปยังพอร์ตใดก็ได้ 11211
แทนที่ 192.168.0.4
ด้วยที่อยู่ IP ของไคลเอ็นต์ที่คุณต้องการ
ถัดไป แก้ไขไฟล์การกำหนดค่า Memcached ที่อยู่ที่ /etc/memcached.conf
โดยการวิ่ง นาโน
สั่งการ.
sudo nano /etc/memcached.conf
ดิ memcached.conf
ไฟล์การกำหนดค่าจะเปิดขึ้นด้วยตัวแก้ไข nano ให้มองหา -l 127.0.0.1
บรรทัดในการกำหนดค่าและแทนที่ 127.0.0.1
ด้วย IP เซิร์ฟเวอร์ Memcached ของคุณหรือในกรณีนี้ 192.168.0.5
.
หลังจากเปลี่ยน press ctrl+o
เพื่อเขียนไปยังไฟล์กำหนดค่าและกด Enter ให้กด ctrl+x
เพื่อออกจากนาโน
รีสตาร์ทเซิร์ฟเวอร์ Memcached และ ufw
ไฟร์วอลล์โดยใช้คำสั่งด้านล่าง
sudo systemctl รีสตาร์ท memcached ufw
ตอนนี้เราเสร็จสิ้นการติดตั้งและกำหนดค่าเซิร์ฟเวอร์ Memcached บน Ubuntu 20.04 แล้ว
กำลังเชื่อมต่อกับเซิร์ฟเวอร์ Memcached
ในการใช้เซิร์ฟเวอร์ Memcached คุณจะต้องติดตั้งไคลเอนต์เฉพาะภาษา โชคดีที่ Memcached รองรับภาษายอดนิยมมากมาย
เรามาดูวิธีการติดตั้งกัน php
และ หลาม
ลูกค้าสำหรับ Memcached
PHP เป็นภาษาสคริปต์ฝั่งเซิร์ฟเวอร์ที่ได้รับความนิยมมากที่สุด และส่วนใหญ่จะใช้ Memcached โดยนักพัฒนาเว็บเพื่อปรับปรุงประสิทธิภาพเซิร์ฟเวอร์ของเว็บแอปที่ขับเคลื่อนโดย PHP
ในการติดตั้งการสนับสนุน memcached ใน php วิ่ง:
sudo apt ติดตั้ง php-memcached
Python ก็มีหลายไลบรารีที่สามารถทำงานและโต้ตอบกับเซิร์ฟเวอร์ Memcached เช่น pymemcached
หรือ python-memcached
.
คุณสามารถติดตั้ง memcached สำหรับ python ได้โดยการรันคำสั่ง pip ต่อไปนี้:
pip ติดตั้ง pymemcache
pip ติดตั้ง python-memcached
โดยสรุป เราได้ดูการติดตั้ง การกำหนดค่า และไคลเอนต์เฉพาะภาษาบางตัวของ Memcached ใน Ubuntu 20.04
หากต้องการทราบการใช้ Memcached ขั้นสูงและละเอียดยิ่งขึ้นให้ดูที่ Memcached Wiki