ฉันอยากจะรู้ว่าอะไรจะเป็นวิธีที่ดีกว่าในการทำให้วัตถุแคช / อัปเดตเป็นโมฆะ
ข้อกำหนดเบื้องต้น
- มีเซิร์ฟเวอร์ memcached ระยะไกล (ทำหน้าที่เป็นแคชสำหรับหลาย ๆ แอปพลิเคชัน)
- เซิร์ฟเวอร์ทั้งหมดโฮสต์โดย Azure (ภูมิภาคที่สัมพันธ์กัน, ดาต้าเซ็นเตอร์เดียวกัน)
- ขนาดวัตถุแคชมีตั้งแต่ 200 ไบต์จนถึง 50 กิโลไบต์
วิธีที่ 1 (เก็บในแคชโดยเร็ว)
- สร้างวัตถุ A -> store ในฐานข้อมูลและเก็บไว้ในแคช
- วัตถุ A ที่ไคลเอนต์ร้องขอ -> ตรวจสอบแคชเพื่อการมีอยู่ของระบบมิฉะนั้นดึงข้อมูลจากฐานข้อมูลและเก็บไว้ในแคช
- วัตถุ A รับการอัพเดท -> จัดเก็บในฐานข้อมูลจัดเก็บในแคช
วิธีที่ 1 ดูเหมือนจะตรงไปตรงมามากกว่า หากมีการสร้างบางสิ่งให้ใส่แคชโดยเร็ว ไม่ว่าจะมีใครบางคนจะต้องการมัน
วิธีที่ 2 (สันหลังยาวแคชสโตร์)
- สร้างวัตถุ A -> store ในฐานข้อมูลแล้ว
- วัตถุ A ที่ไคลเอนต์ร้องขอ -> ตรวจสอบแคชเพื่อการมีอยู่ของระบบมิฉะนั้นดึงข้อมูลจากฐานข้อมูลและเก็บไว้ในแคช
- วัตถุ A รับการอัพเดท -> จัดเก็บในฐานข้อมูลลบรหัสในแคช
วิธีที่ 2 ดูเหมือนจะตระหนักถึงความจำมากขึ้น ในวิธีการนี้เฉพาะรายการที่ขอไปที่แคช
คำถามที่ 1:ในใจของการแสดงสิ่งที่จะเป็นวิธีที่ดีกว่า หน่วยความจำและ CPU ยังไม่นับ
คำถามที่ 2:ความคิดของฉันเป็นการเพิ่มประสิทธิภาพก่อนวัยอันควรหรือไม่
คำถามที่ 3:ความคิดอื่น ๆ วิธีอื่น ๆ