Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Redis

ปรับขนาด Laravel ด้วย Serverless Redis

แนะนำตัว

Laravel เป็นเฟรมเวิร์ก PHP ยอดนิยมสำหรับการสร้างเว็บแอปพลิเคชันที่ปรับขนาดได้และมีประสิทธิภาพสูง

ในบทความนี้ เราจะเรียนรู้วิธีใช้ Redis แบบไร้เซิร์ฟเวอร์เพื่อปรับขนาดแอปพลิเคชัน Laravel โดยการจัดเก็บข้อมูลเซสชัน Laravel และแคชในอินสแตนซ์ Redis แบบไร้เซิร์ฟเวอร์

ข้อกำหนดเบื้องต้น

ก่อนที่คุณจะเริ่มต้น คุณจะต้องมีสิ่งต่อไปนี้:

  • บัญชี Upstash:ในกรณีที่คุณไม่มี คุณสามารถลงทะเบียนได้ฟรี ไม่ต้องใช้บัตรเครดิต
  • หากคุณไม่ได้ติดตั้ง Laravel คุณสามารถทำตามขั้นตอนเกี่ยวกับวิธีการได้ที่นี่:ติดตั้ง Laravel ด้วยการคลิกเพียงครั้งเดียว

ภาพรวมสถาปัตยกรรม

แทนที่จะเรียกใช้ Laravel บนเซิร์ฟเวอร์เดียว ให้พิจารณาสถานการณ์ต่อไปนี้:

  • แอปพลิเคชัน Laravel ที่ทำงานบนเว็บเซิร์ฟเวอร์สองแห่ง
  • ตัวโหลดบาลานซ์ตัวเดียวมีหน้าที่ในการกำหนดเส้นทางคำขอไปยังสองเว็บเซิร์ฟเวอร์
  • เซิร์ฟเวอร์ฐานข้อมูล MySQL ใช้เพื่อเก็บข้อมูลของแอปพลิเคชัน
  • คลัสเตอร์ Upstash Serverless Redis มีหน้าที่แคชข้อมูลและจัดเก็บเซสชันผู้ใช้

แผนภาพ:

ปรับขนาด Laravel ด้วย Serverless Redis

Serverless Redis คืออะไร

Serverless Redis เป็นฐานข้อมูลที่มีการจัดการเต็มรูปแบบในฐานะผลิตภัณฑ์บริการที่มีการกำหนดราคาตามคำสั่ง ดังนั้นคุณจะถูกเรียกเก็บเงินเฉพาะสิ่งที่คุณใช้จริงเท่านั้น

ด้วยวิธีนี้ คุณจะไม่ต้องจัดเตรียมเซิร์ฟเวอร์ของคุณมากเกินไป และคุณสามารถปรับขนาดแอปพลิเคชันของคุณได้ตามต้องการ

เหตุใดจึงต้องใช้ Redis แบบไร้เซิร์ฟเวอร์

โดยค่าเริ่มต้น Laravel จะจัดเก็บเซสชันผู้ใช้ในไฟล์บนดิสก์ของเว็บเซิร์ฟเวอร์ ด้วยวิธีนี้ หากโหลดบาลานเซอร์ส่งต่อคำขอของผู้ใช้ไปยังเซิร์ฟเวอร์อื่น เซสชันของผู้ใช้จะหายไป

นี่คือเหตุผลสำคัญที่ต้องมีที่รวมศูนย์สำหรับจัดเก็บเซสชันผู้ใช้และแคชของแอปพลิเคชัน เพื่อให้สามารถแชร์ระหว่างคำขอและข้ามเซิร์ฟเวอร์หลายเครื่องได้ และไม่สูญหายทุกครั้งที่โหลดบาลานเซอร์ส่งต่อคำขอไปยังเซิร์ฟเวอร์อื่น

แน่นอน คุณสามารถใช้ฐานข้อมูลของคุณเพื่อจัดเก็บเซสชันผู้ใช้และข้อมูลแคช แต่เพื่อประสิทธิภาพที่ดีขึ้น ขอแนะนำให้ใช้ Redis เพื่อประสิทธิภาพที่ดีขึ้น หากคุณต้องการเรียนรู้เพิ่มเติมเกี่ยวกับประโยชน์ด้านประสิทธิภาพของตัวเลือกต่างๆ ให้ดูบทความที่ยอดเยี่ยมนี้ที่นี่:ไดรเวอร์แคช Laravel ตัวใดดีที่สุดสำหรับประสิทธิภาพ

การปรับขนาดแนวนอนเทียบกับการปรับขนาดแนวตั้ง

คำสองสามคำเกี่ยวกับความแตกต่างระหว่างการปรับขนาดแนวนอนและแนวตั้ง:

  • เมื่อคุณมีเซิร์ฟเวอร์เพียงเครื่องเดียว คุณสามารถปรับขนาดเซิร์ฟเวอร์ในแนวตั้งโดยเพิ่มทรัพยากรเพิ่มเติมเข้าไป ตัวอย่างเช่น คุณสามารถเพิ่มแกน CPU, RAM หรือพื้นที่ดิสก์เพื่อขยายขนาด .
  • การปรับขนาดแนวนอนในอีกด้านหนึ่ง คือเมื่อคุณเพิ่มเซิร์ฟเวอร์ที่รับผิดชอบในการส่งคำขอไปยัง ขยายขนาด .

ต่อไปนี้คือตัวอย่างง่ายๆ ของการปรับขนาดแนวนอนและแนวตั้ง:

ปรับขนาด Laravel ด้วย Serverless Redis

เมื่อปรับขนาดแอปพลิเคชันในแนวนอน สิ่งสำคัญคือต้องจัดการเซสชันผู้ใช้และแคชข้อมูลด้วยวิธีที่ปรับขนาดได้

การสร้างคลัสเตอร์ Redis แบบไร้เซิร์ฟเวอร์

ด้วย Upstash คุณสามารถสร้างคลัสเตอร์ Redis แบบไร้เซิร์ฟเวอร์ใน 30 วินาทีโดยทำตามขั้นตอนเหล่านี้:

  • เข้าสู่ระบบบัญชี Upstash ของคุณ
  • คลิกที่ สร้างฐานข้อมูล ปุ่ม.
  • ป้อนชื่อคลัสเตอร์ Redis ของคุณแล้วเลือกภูมิภาค
  • คลิกที่ สร้าง ปุ่ม.

แค่นั้นแหละ! ตอนนี้คุณมีคลัสเตอร์ Redis แบบไร้เซิร์ฟเวอร์พร้อมใช้งาน

อย่าลืมจดปลายทางของคลัสเตอร์ Redis พร้อมกับรหัสผ่านและพอร์ต

การกำหนดค่า Laravel ด้วย Serverless Redis

ตอนนี้คุณมีคลัสเตอร์ Redis แบบไร้เซิร์ฟเวอร์แล้ว คุณสามารถกำหนดค่า Laravel ให้ใช้งานได้เหมือนกับที่คุณทำกับอินสแตนซ์ Redis อื่นๆ

ติดตั้งแพ็คเกจ Predis

ในอดีต คุณจะใช้ส่วนขยาย PHP Redis เพื่อเชื่อมต่อกับคลัสเตอร์ Redis ของคุณ อย่างไรก็ตาม ตอนนี้คุณสามารถใช้แพ็คเกจ Predis แทนได้

ในการติดตั้งแพ็คเกจ Predis ให้รันคำสั่งต่อไปนี้:

composer require predis/predis

ถัดไป ตรงไปที่ .env . ของโปรเจ็กต์ Laravel ของคุณ ไฟล์และอัปเดตบรรทัดต่อไปนี้:

REDIS_HOST=your_upstash_redis_endpoint
REDIS_PASSWORD=your_upstash_redis_password
REDIS_PORT=your_upstash_redis_port

ขณะเปลี่ยนรายละเอียด Redis อย่าลืมเปลี่ยนไดรเวอร์แคชและไดรเวอร์เซสชันเป็น redis :

CACHE_DRIVER=redis
SESSION_DRIVER=redis

สุดท้าย ล้างแคชการกำหนดค่าของคุณโดยเรียกใช้คำสั่งต่อไปนี้:

php artisan config:clear

ด้วยวิธีนี้ แอปพลิเคชัน Laravel ของคุณจะใช้คลัสเตอร์ Redis แบบไร้เซิร์ฟเวอร์เพื่อจัดเก็บแคชและข้อมูลเซสชัน

บทสรุป

การใช้ Laravel กับ Serverless Redis เป็นวิธีที่ยอดเยี่ยมในการปรับขนาดแอปพลิเคชันของคุณ แม้ว่าคุณจะใช้งาน Laravel บนคลัสเตอร์ Kubernetes คุณยังสามารถใช้คลัสเตอร์ Redis แบบไร้เซิร์ฟเวอร์เพื่อจัดเก็บเซสชันผู้ใช้และแคชข้อมูลของคุณในแบบที่ปรับขนาดได้

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ Upstash โปรดดูเอกสารประกอบ

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการปรับขนาดแอปพลิเคชัน Laravel โปรดดูบทความต่อไปนี้:

  • วิธีตั้งค่าแอปพลิเคชัน Laravel 6 ที่ปรับขนาดได้โดยใช้ฐานข้อมูลที่มีการจัดการและที่เก็บข้อมูลอ็อบเจ็กต์