ในบทเรียนนี้ เราจะเรียนรู้วิธีการตั้งค่า String หลายค่าที่ Key เฉพาะของแต่ละค่าใน Redis Datastore โดยใช้คำสั่ง Redis MSET และ MSETNX
คำสั่ง MSET
คำสั่ง MSET ใช้ตั้งค่า String หลายค่าให้กับ Key ที่ระบุของแต่ละค่า หาก Key ที่ระบุใดๆ มีอยู่แล้ว ค่าของมันจะถูก Overwrite (เขียนทับ) ไม่ว่าจะเป็นชนิดข้อมูลอะไร และเวลาหมดอายุเก่าที่เกี่ยวข้องกับ Key จะถูกลบด้วย คำสั่ง MSET เป็น Atomic โดยลักษณะ ดังนั้น Key ที่ระบุทั้งหมดจะถูกตั้งค่าพร้อมกัน และคำสั่งนี้ไม่สามารถ Fail ได้ ไวยากรณ์ของคำสั่ง Redis MSET มีดังนี้ :-
ไวยากรณ์ (Syntax) :-
redis host:port> MSET <keyname-1> <value-1> <keyname-2> <value-2> <keyname-3> <value-3>
ผลลัพธ์ (Output) :-
- (string) reply OK, แสดงการดำเนินการสำเร็จ
ตัวอย่าง (Example) :-

คำสั่ง MSETNX
คำสั่ง MSETNX ใช้ตั้งค่า String หลายค่าให้กับ Key ที่ระบุของแต่ละค่า หาก Key ที่ระบุใดๆ มีอยู่แล้ว การดำเนินการจะ Fail และ Key ที่ระบุทั้งหมดจะไม่ถูกตั้งค่า คำสั่ง MSETNX เป็น Atomic โดยลักษณะ ดังนั้น Key ที่ระบุทั้งหมดจะถูกตั้งค่าพร้อมกัน และ Client ไม่สามารถเห็นได้ว่าบาง Key ถูกอัปเดตแล้วแต่อื่นยังไม่ได้ ไวยากรณ์ของคำสั่ง Redis MSETNX มีดังนี้ :-
ไวยากรณ์ (Syntax) :-
redis host:port> MSETNX <keyname-1> <value-1> <keyname-2> <value-2> <keyname-3> <value-3>
ผลลัพธ์ (Output) :-
- 1, หากการดำเนินการสำเร็จและ String ทั้งหมดถูกตั้งค่า - 0, หากการดำเนินการ Fail (มี Key อยู่แล้วอย่างน้อย 1 ตัว) และไม่มี String ใดถูกตั้งค่า
ตัวอย่าง (Example) :-

อ้างอิง (References) :-
- MSET Command Docs
- MSETNX Command Docs
ขอจบบทเรียนเรื่องวิธีตั้งค่า String หลายค่าที่ Key เฉพาะของแต่ละค่าใน Redis Datastore หากชอบ กรุณาแชร์ความคิดเห็นในส่วนความคิดเห็นและแชร์ให้คนอื่นๆ ด้วยนะครับ