ในบทเรียนนี้ เราจะเรียนรู้วิธีการตั้งค่า string value ที่ key ที่ระบุใน Redis datastore โดยใช้คำสั่ง Redis SET, SETNX, SETEX และ PSETEX
คำสั่ง SET
คำสั่งนี้ใช้ตั้งค่า string value ให้ key ที่ระบุ หาก key มีอยู่แล้ว ค่าจะถูกทับทีไม่ว่าจะเป็น type อะไร และ expiration time ก่อนหน้าที่ผูกกับ key จะถูกลบด้วย
Optional Arguments
คำสั่ง SET รับอาร์กิวเมนต์เพิ่มเติมดังนี้:
- EX seconds: ตั้งค่า expiration time บน key ในหน่วยวินาที
- PX milliseconds: ตั้งค่า expiration time บน key ในหน่วยมิลลิวินาที
- NX: ตั้งค่า string value เฉพาะเมื่อ key ไม่มีอยู่
- XX: ตั้งค่า string value เฉพาะเมื่อ key มีอยู่แล้ว
Syntax
redis host:port> SET <keyname> <value>
Output
- OK: หากดำเนินการสำเร็จและตั้งค่า string value - Null: หากดำเนินการล้มเหลวและไม่ได้ตั้งค่า string value
ตัวอย่าง

คำสั่ง SETNX
คำสั่ง SETNX ใช้ตั้งค่า string value ที่ key ที่ระบุ หาก key มีอยู่แล้ว การดำเนินการจะล้มเหลวและคืนค่า 0 มิฉะนั้น string value จะถูกเก็บที่ key และคืนค่า 1
Syntax
redis host:port> SETNX <keyname> <value>
Output
- 1: หากดำเนินการสำเร็จและตั้งค่า string value - 0: หากดำเนินการล้มเหลวและไม่ได้ตั้งค่า string value
เทียบเท่ากับคำสั่ง SET พร้อมอาร์กิวเมนต์ NX
ตัวอย่าง

คำสั่ง SETEX
คำสั่ง SETEX ใช้ตั้งค่า string value ที่ key ที่ระบุและตั้งค่า expiration time บน key นั้นในหน่วยวินาที จำนวนวินาทีนี้แทน time to live หากจำนวนวินาทีเป็นศูนย์หรือลบ key จะถูกลบทันที SETEX เป็น atomic โดยธรรมชาติและเทียบเท่ากับการรันคำสั่งต่อไปนี้:
SET key value EXPIRE key seconds
Syntax
redis host:port> SETEX <keyname> <seconds> <value>
Output
- OK: หากดำเนินการสำเร็จและตั้งค่า string value - Null: หากดำเนินการล้มเหลวและไม่ได้ตั้งค่า string value
เทียบเท่ากับคำสั่ง SET พร้อมอาร์กิวเมนต์ EX
ตัวอย่าง

คำสั่ง PSETEX
คำสั่งนี้คล้ายกับ SETEX มาก แตกต่างตรงที่ใน PSETEX expiration time ระบุเป็นมิลลิวินาทีแทนที่จะเป็นวินาที
Syntax
redis host:port> PSETEX <keyname> <milliseconds> <value>
Output
- OK: หากดำเนินการสำเร็จและตั้งค่า string value - Null: หากดำเนินการล้มเหลวและไม่ได้ตั้งค่า string value
เทียบเท่ากับคำสั่ง SET พร้อมอาร์กิวเมนต์ PX
ตัวอย่าง

อ้างอิง
- SET Command Docs
- SETNX Command Docs
- SETEX Command Docs
- PSETEX Command Docs
ขอจบบทเรียนสำหรับวิธีตั้งค่า string value ที่ key ที่ระบุใน Redis datastore หากชอบบทเรียนนี้ กรุณาแบ่งปันความคิดเห็นและแชร์ให้ผู้อื่นด้วยครับ