API แคชระดับต่ำและการทำให้แคชเป็นโมฆะ
แคชผลลัพธ์คิวรีและล้างคีย์เก่า
API แคชระดับต่ำและการทำให้แคชเป็นโมฆะ เป็นบทเรียน Django Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Django Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Django Academy มีบทเรียนทั้งหมด 4 บทเรียน
แคชสิ่งที่ต้องการ
low-level cache API ช่วยให้คุณจัดเก็บวัตถุ Python ใด ๆ เช่น ผลลัพธ์จากคำค้น โดยควบคุมคีย์และ timeout ได้อย่างเต็มที่
นำเข้าวัตถุ cache
เรียกใช้วัตถุ cache ที่ใช้ร่วมกันจาก django.core.cache เพื่อเรียกใช้เมธอดของวัตถุนี้ได้จากที่ใดก็ได้ในมุมมองหรือบริการของคุณ
from django.core.cache import cacheรูปแบบแคชแบบแยกจากกัน
กระบวนการแบบคลาสสิกคือ cache-aside: ลองอ่านจากแคชก่อน และเรียกใช้คำค้นที่ช้าเฉพาะเมื่อไม่พบค่าเท่านั้น
stats = cache.get("stats")
if stats is None:
stats = compute_stats()
cache.set("stats", stats, 300)get_or_set ในการเรียกครั้งเดียว
ย่อรูปแบบดังกล่าวด้วย get_or_set ซึ่งจะคืนค่าที่แคชไว้ หรือคำนวณ จัดเก็บ และคืนค่าหากยังไม่มี
stats = cache.get_or_set("stats", compute_stats, 300)จัดเก็บหลายค่าพร้อมกัน
ใช้ set_many เพื่อเขียนหลายคีย์ในการเดินทางไปกลับเพียงครั้งเดียว ซึ่งเร็วกว่าการเรียก set แยกกันหลายครั้ง
cache.set_many({"a": 1, "b": 2}, 300)ข้อมูลล้าสมัยคือความเสี่ยง
ค่าที่แคชไว้อาจคลาดเคลื่อนจากฐานข้อมูล การนำรายการที่ล้าสมัยออกเพื่อให้โหลดข้อมูลใหม่เรียกว่า invalidation
ลบคีย์
เรียกใช้ delete พร้อมคีย์เพื่อลบรายการหนึ่งรายการ ทำให้การอ่านครั้งถัดไปสร้างรายการนั้นใหม่จากแหล่งข้อมูล
cache.delete("stats")ทำให้แคชใช้ไม่ได้เมื่อบันทึก
แนวปฏิบัติที่เชื่อถือได้คือใช้ delete กับคีย์ที่ได้รับผลกระทบทันทีหลังข้อมูลเปลี่ยนแปลง เพื่อไม่ให้ผู้ใช้เห็นเวอร์ชันเก่า
post.save()
cache.delete("post_" + str(post.id))การกำหนดเวอร์ชันดีกว่าการลบ
ส่ง version ไปยัง set และ get เพื่อให้การเพิ่มหมายเลขสามารถยกเลิกการใช้งานคีย์เก่าทั้งชุดได้ทันที
cache.set("stats", data, version=2)ตัวนับแบบอะตอมิก
เพิ่มค่าตัวเลขของคีย์อย่างปลอดภัยด้วย incr เหมาะอย่างยิ่งสำหรับจำนวนการดูที่มีคำขอหลายรายการอัปเดตค่าเดียวกัน
cache.incr("page_views")ล้างทุกอย่างเมื่อจำเป็นจริง ๆ
เมธอด clear จะล้างแคชทั้งหมด เป็นเครื่องมือที่รุนแรง จึงควรเก็บไว้ใช้ตอนนำระบบขึ้นใช้งาน ไม่ใช่สำหรับการอัปเดตตามปกติ
cache.clear()ตรวจสอบอย่างรวดเร็ว
มายืนยันวิธีที่สะอาดที่สุดในการอ่านหรือคำนวณค่ากัน
สรุป
คุณเชี่ยวชาญ low-level API แล้ว: ใช้ cache-aside ร่วมกับ get_or_set จากนั้นรักษาข้อมูลให้สดใหม่ด้วยการลบคีย์หรือเพิ่มเวอร์ชัน 🎯
เรียนรู้ Python ด้วย AI tutor — ฟรี
เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป
- คอร์ส
- 30
- บทเรียน
- 120
คำถามที่พบบ่อย
บทเรียน “API แคชระดับต่ำและการทำให้แคชเป็นโมฆะ” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “API แคชระดับต่ำและการทำให้แคชเป็นโมฆะ” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Django Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Django Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “API แคชระดับต่ำและการทำให้แคชเป็นโมฆะ”
แคชผลลัพธ์คิวรีและล้างคีย์เก่า คุณปฏิบัติ Django Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Django Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Django Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน
บทเรียน “API แคชระดับต่ำและการทำให้แคชเป็นโมฆะ” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Django Academy นี้ได้ไหม
ได้ บทเรียน Django Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- แบ็กเอนด์แคชและ Redis
- การแคชรายวิวและรายเว็บไซต์
- การแคชบางส่วนของเทมเพลต
- API แคชระดับต่ำและการทำให้แคชเป็นโมฆะ