Django Academy · บทเรียน

API แคชระดับต่ำและการทำให้แคชเป็นโมฆะ

แคชผลลัพธ์คิวรีและล้างคีย์เก่า

บทเรียน 4 จาก 413 ขั้นตอน

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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. แบ็กเอนด์แคชและ Redis
  2. การแคชรายวิวและรายเว็บไซต์
  3. การแคชบางส่วนของเทมเพลต
  4. API แคชระดับต่ำและการทำให้แคชเป็นโมฆะ
← กลับไปที่ Django Academy