
RESP Protocol หรือ REdis Serialization Protocol
เป็น protocol ที่ Redis ใช้ในการติดต่อสื่อสารกัน
โดยมรเป้าหมายดังนี้
- ง่ายต่อการ implement
- ทำงานรวดเร็ว
- คนทั่วไปสามารถอ่านเข้าใจได้ง่าย
โดยข้อมูลที่ serialize ได้มีหลายหลายชนิดทั้ง integer, string และ array
ดังนั้นเพื่อความเข้าใจ มาลองศึกษา และ เขียน code สร้างขึ้นมาเองแบบง่าย ๆ
เริ่มด้วยรูปแบบพื้นฐานของ protocol ก่อน
- ใช้งาน TCP ในการติดต่อสื่อสาร
- เป็นการติดต่อสื่อสารแบบ request-response model (synchronous)
- มีรูปแบบการรับส่งข้อมูลง่าย ๆ
รูปแบบการรับา่งข้อมูล เป็นดังนี้
- * บอกจำนวนของ argument ที่ส่งมา เช่น *2 คือ argument 2 ตัว เช่น $get counter เป็นต้น
- $ คือจำนวน byte ของ argument
- \r\n บอกการจบหรือสิ้นสุด
ตัวอย่างเช่น
มาลองเขียน code ด้วยภาษา go เพื่อสร้าง RESP server กันดีกว่า
ทำการ start TPC server ขึ้นมา
เพื่อรับ connection ของ client ผ่านทาง Redis-cli ปกติ
จากนั้นทำการ response กลับไปด้วยคำว่า OK
โดยมีรูปแบบคือ +OK\r\n
- + คือ type string
- – คือ error
- : คือ integer
ตัวอย่าง code แบบง่าย ๆ เพื่อให้ทำงานตามที่ต้องการ
เมื่อมีการ connect มาจาก Redis-cli จะเป็นดังนี้
ลองศึกษาไปทีละนิดทีละหน่อย ด้วยการเขียน code
ก็ทำให้เข้าใจมากขึ้นเช่นเดียวกัน
ลองเขียนเล่นกันดูนะครับ