Latest web development tutorials

คำสั่ง 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