ห้องสมุดลูกค้า Memcachedเพิ่งเปิดตัวที่มีเสถียรภาพ มันถูกใช้โดยdigg (พัฒนาสำหรับ digg โดย Andrei Zmievski ตอนนี้ไม่ใช้ digg อีกต่อไป) และใช้โปรโตคอล memcachedมากกว่าไคลเอ็นต์ memcache รุ่นเก่า คุณสมบัติที่สำคัญที่สุดที่ memcached มีคือ:
- ราชสกุล Cas สิ่งนี้ทำให้ชีวิตของฉันง่ายขึ้นมากและเป็นระบบป้องกันที่ง่ายสำหรับข้อมูลเก่า เมื่อใดก็ตามที่คุณดึงบางสิ่งบางอย่างจากแคชคุณสามารถรับด้วยโทเค็น cas (หมายเลขสอง) คุณสามารถใช้โทเค็นนั้นเพื่อบันทึกวัตถุที่อัปเดตของคุณ ถ้าไม่มีใครอัพเดตค่าในขณะที่เธรดของคุณกำลังรันอยู่การสลับจะสำเร็จ มิฉะนั้นจะมีการสร้างโทเค็น caser ที่ใหม่กว่าและคุณถูกบังคับให้โหลดข้อมูลใหม่และบันทึกอีกครั้งด้วยโทเค็นใหม่
- อ่านผ่านcallbacksเป็นสิ่งที่ดีที่สุดตั้งแต่ขนมปังหั่นบาง ๆ มันทำให้รหัสของฉันง่ายขึ้นมาก
- getDelayed ()เป็นคุณสมบัติที่ดีที่สามารถลดเวลาที่สคริปต์ของคุณต้องรอให้ผลลัพธ์กลับมาจากเซิร์ฟเวอร์
- ในขณะที่เซิร์ฟเวอร์ memcached ควรจะมีเสถียรภาพมาก แต่ก็ไม่ใช่วิธีที่เร็วที่สุด คุณสามารถใช้โปรโตคอลไบนารีแทน ASCII กับไคลเอนต์ที่ใหม่กว่า
- เมื่อใดก็ตามที่ท่านจัดเก็บข้อมูลที่ซับซ้อนใน memcached ลูกค้าที่ใช้มักจะทำอนุกรมของมูลค่า (ซึ่งช้า) แต่ตอนนี้กับลูกค้า memcached คุณมีตัวเลือกของการใช้igbinary จนถึงตอนนี้ฉันยังไม่ได้มีโอกาสทดสอบว่าจะเพิ่มประสิทธิภาพได้เท่าไหร่
คะแนนทั้งหมดนี้เพียงพอสำหรับฉันที่จะเปลี่ยนไปใช้ไคลเอนต์ใหม่ล่าสุดและสามารถบอกคุณได้ว่ามันใช้งานได้อย่างมีเสน่ห์ มีการพึ่งพาภายนอกในไลบรารีlibmemcachedแต่มีการจัดการเพื่อติดตั้งอย่างไรก็ตามบน Ubuntu และ Mac OSX ดังนั้นจึงไม่มีปัญหา
หากคุณตัดสินใจที่จะอัปเดตเป็นไลบรารีใหม่กว่าฉันขอแนะนำให้คุณอัปเดตเป็นเซิร์ฟเวอร์รุ่นล่าสุดรวมถึงมีคุณสมบัติที่ดีเช่นกัน คุณจะต้องติดตั้งlibeventเพื่อให้คอมไพล์ แต่บน Ubuntu มันไม่ได้เป็นปัญหามากนัก
ฉันไม่ได้เห็นกรอบใด ๆ ที่รับไคลเอ็นต์ memcached ใหม่จนถึงตอนนี้ (แม้ว่าฉันจะไม่ติดตามพวกเขา) แต่ฉันคิดว่าZendจะขึ้นเครื่องในไม่ช้า
UPDATE
Zend Framework 2 มีอะแดปเตอร์สำหรับ Memcached ซึ่งสามารถพบได้ที่นี่