คำสั่ง CAS memcached
memcached CAS (ตรวจสอบและตั้งค่าหรือเปรียบเทียบและ Swap) คำสั่งที่ใช้ในการดำเนินการการดำเนินการ "ตรวจสอบและการตั้งค่า"
มันเป็นเพียงหลังจากที่ลูกค้าปัจจุบันค่าสุดท้าย, ค่าคีย์ที่สอดคล้องกับกรณีที่ไม่มีลูกค้าอื่น ๆ การปรับเปลี่ยนเพื่อให้สามารถเขียนค่า
การตรวจสอบจะดำเนินการโดยพารามิเตอร์ cas_token พารามิเตอร์นี้เป็นที่ไม่ซ้ำกัน 64 บิต Memcach ค่าที่กำหนดองค์ประกอบที่มีอยู่
ไวยากรณ์:
คำสั่งไวยากรณ์ CAS พื้นฐานจะเป็นดังนี้:
cas key flags exptime bytes unique_cas_token [noreply] value
พารามิเตอร์มีดังนี้
- สำคัญ: ปุ่มโครงสร้างค่าคีย์จะใช้ในการหาค่าแคช
- ธง: อาจรวมถึงคู่ที่สำคัญค่าของพารามิเตอร์จำนวนเต็มลูกค้าใช้มันในการจัดเก็บข้อมูลเพิ่มเติมเกี่ยวกับคู่ค่าคีย์
- exptime: บันทึกคู่ค่าคีย์ในแคชระยะเวลา (วินาที, 0 หมายถึงตลอดไป)
- ไบต์: จำนวนไบต์ที่ถูกเก็บไว้ในแคช
- unique_cas_token ที่ได้มาผ่านคำสั่งที่ได้รับค่า 64 บิตที่ไม่ซ้ำกัน
- noreply (อุปกรณ์เสริม): พารามิเตอร์นี้จะบอกเซิร์ฟเวอร์ไม่จำเป็นต้องส่งกลับข้อมูล
- มูลค่าค่าที่เก็บไว้ (อยู่เสมอในแถวที่สอง) (สามารถเข้าใจได้โดยตรงเป็นค่าโครงสร้างค่าคีย์)
ตัวอย่าง
ที่จะใช้คำสั่งบน CAS Memcached คุณจะต้องรับโทเค็น (โทเค็น) จากผู้ให้บริการได้รับ Memcached ผ่านคำสั่ง
ฟังก์ชั่นได้รับการสั่งคำสั่งที่ได้รับพื้นฐานที่คล้ายกัน ความแตกต่างระหว่างสองคำสั่งคือว่าได้รับข้อมูลเพิ่มเติมเล็ก ๆ น้อย ๆ กลับมาว่า: ค่าจำนวนเต็ม 64 บิตอย่างมากเช่นชื่อ / คู่ค่า "รุ่น" ระบุ
ตัวอย่างของการตามขั้นตอนต่อไปนี้:
- หากคุณไม่ได้ตั้งค่าโทเค็นที่ไม่ซ้ำกัน CAS ข้อผิดพลาดการดำเนินการคำสั่ง
- ถ้าคีย์ที่สำคัญไม่ได้อยู่ที่การดำเนินการล้มเหลว
- เพิ่มคู่ค่าคีย์
- ได้รับคำสั่งโทเค็นที่ไม่ซ้ำกันได้รับผ่าน
- โดยใช้คำสั่ง CAS ในการปรับปรุงข้อมูล
- ไม่ว่าจะใช้คำสั่งที่ได้รับเพื่อดูการปรับปรุงข้อมูล
cas tp 0 900 9 ERROR <− 缺少 token cas tp 0 900 9 2 memcached NOT_FOUND <− 键 tp 不存在 set tp 0 900 9 memcached STORED gets tp VALUE tp 0 9 1 memcached END cas tp 0 900 5 1 redis STORED get tp VALUE tp 0 5 redis END
ส่งออก
หากข้อมูลที่ถูกเพิ่มประสบความสำเร็จในการส่งออก:
STORED
คำอธิบายข้อมูลการส่งออก:
- เก็บ: หลังจากที่ประสบความสำเร็จในการส่งออกที่บันทึกไว้
- ข้อผิดพลาด: บันทึกข้อผิดพลาดหรือข้อผิดพลาดทางไวยากรณ์
- อยู่แล้ว: หลังจากที่ค่าสุดท้ายของผู้ใช้อื่น ๆ กำลังปรับปรุงข้อมูล
- NOT_FOUND: คีย์นี้ไม่ได้อยู่ในการให้บริการ Memcached