แคชส่วนกลาง
Logto รองรับการใช้ Redis®1 เป็นแคชส่วนกลางสำหรับข้อมูลที่เป็นที่รู้จัก (well-known data) โดยการใช้แคชส่วนกลาง Logto สามารถเพิ่มความเร็วในการใช้งานของผู้ใช้ปลายทางได้อย่างมาก ด้วยการลดจำนวนการคิวรีฐานข้อมูลที่จำเป็นในการสร้างผลลัพธ์
โดยทั่วไป แคชสามารถเปิดเผยต่อสาธารณะได้ เนื่องจากออกแบบมาเพื่อข้อมูลที่เป็นที่รู้จักเท่านั้น ปัจจุบัน Logto ไม่ได้จัดเก็บข้อมูลใด ๆ ที่ต้องการการยืนยันตัวตน (Authentication) หรือการอนุญาต (Authorization)
เพื่อให้มั่นใจในแนวปฏิบัติด้านความปลอดภัยที่ดีที่สุด เรายังคงแนะนำให้จำกัดการเข้าถึงแคช
กำหนดค่าการเชื่อมต่อ
เพื่อเปิดใช้งานแคช คุณจะต้องมีอินสแตนซ์ Redis 6.0 ที่กำลังทำงานอยู่ สำหรับให้ Logto เชื่อมต่อและใช้งานแคช เพียงตั้งค่าตัวแปรสภาพแวดล้อม REDIS_URL
เป็นสตริงการเชื่อมต่อ Redis ซึ่งควรเริ่มต้นด้วย โปรโตคอล "redis" (redis://
) สำหรับการเชื่อมต่อแบบไม่ปลอดภัย หรือ โปรโตคอล "redis" (redis://
) สำหรับการเชื่อมต่อผ่าน TLS
ตัวอย่างเช่น:
REDIS_URL=redis://your-redis-username:[email protected]:6380
โปรดทราบว่าส่วนใหญ่ของสตริงการเชื่อมต่อสามารถละเว้นได้ ดังตัวอย่างด้านล่าง ซึ่งประกอบสตริงการเชื่อมต่อโดยไม่มีชื่อผู้ใช้และพอร์ต โดยใช้โปรโตคอล "redis":
REDIS_URL=redis://:[email protected]
หากรหัสผ่านมีอักขระพิเศษ จำเป็นต้องเข้ารหัสแบบ URI:
# หากรหัสผ่านคือ "foo="
REDIS_URL=redis://:foo%[email protected]
ในกรณีที่ใช้ค่าดีฟอลต์ทั้งหมด คุณสามารถตั้งค่าตัวแปรเป็นค่าความจริง (truthy) เพื่อความสะดวก:
REDIS_URL=1 # หรือ "true", "yes"
ไม่รองรับสตริง StackExchange.Redis
ตรวจสอบว่าแคชทำงานหรือไม่
เพื่อตรวจสอบว่าแคชเชื่อมต่ออย่างถูกต้องหรือไม่ คุณควรเห็นข้อความต่อไปนี้แสดงเมื่อ Logto เริ่มทำงาน:
[CACHE] Connected to Redis
นอกจากนี้ เมื่อมีการร้องขอที่เข้าแคช (เช่น การเข้าถึง GET /api/.well-known/phrases
หลายครั้ง) จะมีข้อความต่อไปนี้ปรากฏในคอนโซล:
[CACHE] Well-known cache hit for ...
Footnotes
-
Redis เป็นเครื่องหมายการค้าจดทะเบียนของ Redis Ltd. สิทธิ์ใด ๆ ที่เกี่ยวข้องเป็นของ Redis Ltd. การใช้งานโดย Silverhand มีวัตถุประสงค์เพื่อการอ้างอิงเท่านั้น และไม่ได้แสดงถึงการสนับสนุน รับรอง หรือความเกี่ยวข้องระหว่าง Redis และ Silverhand ↩