คำถามติดแท็ก second-level-cache

4
จะใช้แคชระดับที่สองในโหมดไฮเบอร์เนตเมื่อใดและอย่างไร
ฉันมีปัญหาในการทำความเข้าใจเมื่อไฮเบอร์เนตถึงแคชระดับที่สองและเมื่อใดที่แคชไม่ถูกต้อง นี่คือสิ่งที่ฉันเข้าใจในปัจจุบัน: แคชระดับที่สองเก็บเอนทิตีระหว่างเซสชันขอบเขตคือ SessionFactory คุณต้องบอกว่าเอนทิตีใดที่จะแคชไม่มีเอนทิตีใดจะถูกแคชโดยค่าเริ่มต้น แคชแบบสอบถามจะเก็บผลลัพธ์ของคิวรีไว้ในแคช สิ่งที่ฉันไม่เข้าใจคือ เมื่อใดที่ไฮเบอร์เนตจะเข้าสู่แคชนี้ สมมติว่าฉันได้ตั้งค่าแคชระดับที่สองแล้ว แต่ไม่ใช่การแคชแบบสอบถาม ฉันต้องการแคชลูกค้าของฉันมี 50000 คน ฉันจะดึงข้อมูลลูกค้าจากแคชด้วยวิธีใดได้บ้าง ฉันคิดว่าฉันสามารถรับได้โดย id จากแคช ซึ่งจะเป็นเรื่องง่าย แต่ก็ไม่คุ้มค่ากับการแคช แต่ถ้าฉันต้องการคำนวณกับลูกค้าทั้งหมดของฉัน สมมติว่าฉันต้องการแสดงรายชื่อลูกค้าแล้วฉันจะเข้าถึงได้อย่างไร ฉันจะหาลูกค้าทั้งหมดได้อย่างไรหากปิดใช้งานการแคชแบบสอบถาม จะเกิดอะไรขึ้นหากมีคนอัปเดตลูกค้ารายใดรายหนึ่ง ลูกค้ารายนั้นจะถูกทำให้แคชเป็นโมฆะหรือลูกค้าทั้งหมดจะไม่ถูกต้อง หรือฉันคิดว่าการแคชผิดทั้งหมด? การใช้แคชระดับที่สองจะเหมาะสมกว่าในกรณีนี้อย่างไร เอกสารไฮเบอร์เนตไม่ชัดเจนเลยว่าแคชทำงานอย่างไรในความเป็นจริง มีเพียงคำแนะนำในการตั้งค่าเท่านั้น อัปเดต: ดังนั้นฉันจึงเข้าใจว่าแคชระดับที่สอง (ไม่มีแคชแบบสอบถาม) จะดีสำหรับการโหลดข้อมูลโดยใช้รหัส ตัวอย่างเช่นฉันมีวัตถุผู้ใช้ที่ฉันต้องการตรวจสอบสิทธิ์ในทุกคำขอในเว็บแอปพลิเคชัน นี่เป็นกรณีที่ดีหรือไม่ที่จะลดการเข้าถึงฐานข้อมูลโดยการแคชผู้ใช้ในแคชระดับที่สอง เช่นเดียวกับที่ฉันจะจัดเก็บ ID ผู้ใช้ในเซสชันหรือที่ใดก็ตามและเมื่อฉันต้องการตรวจสอบสิทธิ์ฉันจะโหลดผู้ใช้โดยใช้รหัสและตรวจสอบสิทธิ์
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.