คำถามติดแท็ก memcached

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

2
การใช้ Memcached: เป็นการดีหรือไม่ที่จะอัพเดตแคชเมื่อทำการอัพเดตฐานข้อมูล?
คำถามนี้เกี่ยวกับหลักปฏิบัติที่ดีที่สุดในสถาปัตยกรรม สถาปัตยกรรมปัจจุบันของเรา ฉันมีคลาส PHP ที่เข้าถึง MySQL สำหรับข้อมูลผู้ใช้ Userขอเรียกว่า Userมีการเข้าถึงหลายครั้งดังนั้นเราจึงติดตั้งเลเยอร์ของแคชเพื่อลดภาระ เลเยอร์แรกคือสิ่งที่เราเรียกว่าแคช "ต่อคำขอ" หลังจากที่ข้อมูลได้รับการเรียกข้อมูลจาก MySQL, Userเราเก็บข้อมูลในทรัพย์สินส่วนตัวของ การร้องขอใด ๆ ที่ตามมาสำหรับข้อมูลจะส่งคืนคุณสมบัติแทนการร้องขอข้อมูลจาก MySQL อีกครั้ง เนื่องจากคำขอทางเว็บนั้นใช้งานและตายต่อการร้องขอแคชนี้จะป้องกันไม่ให้แอปพลิเคชันเข้าถึง MySQL มากกว่าหนึ่งครั้งในคำขอเดียว ชั้นที่สองของเราคือ Memcached เมื่อคุณสมบัติส่วนตัวว่างเปล่าก่อนอื่นเราตรวจสอบ Memcached สำหรับข้อมูล หาก Memcached ว่างเรา MySQL แบบสอบถามสำหรับข้อมูลที่ปรับปรุง memcached Userและปรับปรุงทรัพย์สินส่วนตัวของ คำถาม แอปพลิเคชันของเราเป็นเกมและบางครั้งจำเป็นที่ข้อมูลบางอย่างจะเป็นข้อมูลล่าสุด ในช่วงเวลาประมาณห้านาทีคำขอการอ่านสำหรับข้อมูลผู้ใช้อาจเกิดขึ้น 10 หรือ 11 ครั้ง; จากนั้นการอัปเดตอาจเกิดขึ้น คำขอการอ่านครั้งต่อไปจะต้องทันสมัยหรือกลไกของเกมล้มเหลว ดังนั้นสิ่งที่เราทำคือการใช้รหัสที่ดำเนินการเมื่อมีการอัพเดทฐานข้อมูล รหัสนี้ตั้งค่าคีย์ใน Memcached พร้อมข้อมูลที่อัปเดตดังนั้นการร้องขอต่อ Memcached ที่ตามมาทั้งหมดเป็นข้อมูลล่าสุด สิ่งนี้ดีที่สุดหรือไม่? …

2
การแคชแบบใช้คีย์ทำงานอย่างไร
ฉันเพิ่งอ่านบทความในบล็อก 37Signalsและฉันก็สงสัยว่าพวกเขาได้รับรหัสแคชอย่างไร ทุกอย่างดีและดีมีคีย์แคชที่มีการประทับเวลาของวัตถุ (ซึ่งหมายความว่าเมื่อคุณอัปเดตวัตถุแคชจะไม่ถูกต้อง) แต่คุณจะใช้แคชคีย์ในเทมเพลตได้อย่างไรโดยไม่ทำให้ DB มีผลกระทบต่อวัตถุที่คุณพยายามดึงข้อมูลจากแคช โดยเฉพาะสิ่งนี้มีผลต่อความสัมพันธ์แบบหนึ่งต่อหลายอย่างที่คุณแสดงความคิดเห็นของโพสต์อย่างไร ตัวอย่างใน Django: {% for comment in post.comments.all %} {% cache comment.pk comment.modified %} <p>{{ post.body }}</p> {% endcache %} {% endfor %} การแคชใน Rails นั้นแตกต่างจากการร้องขอเพื่อ memcached หรือไม่ (ฉันรู้ว่าพวกเขาแปลงแคชคีย์ของคุณเป็นอย่างอื่น) พวกเขายังแคชรหัสแคชหรือไม่
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.