Redis คืออะไร ?
Redis เป็นซอฟต์แวร์ Open Source ตัวนึงที่เอาไว้เก็บข้อมูลแบบโครงสร้างใน Memory หรือก็คือเก็บใน RAM นั่นเอง โดยเราสามารถใช้งานเป็น Database ชั่วคราวหรือใช้ในการเก็บ Cache ก็ได้ มีข้อดีก็คือทำงานได้เร็วมากกกกก เพราะมันเก็บอยู่ใน RAM แล้วก็นับว่าเป็น NoSQL แบบนึงก็ได้ที่ข้อมูลจะถูกเก็บแบบ Key – Value เอาไว้ แต่การจะใช้แทนที่ Database ก็อาจจะใช้ไม่ได้ทุกกรณี นั่นก็เพราะมันเก็บข้อมูลอยู่ใน RAM อีกนั่นแหละ
วิธีติดตั้ง
เข้าไปดูที่ลิงค์นี้ได้เลย https://redis.io/download มีสอนการดาวน์โหลดและติดตั้งเอาไว้เรียบร้อย แต่ถ้าอยากจะลองเล่นง่ายที่สุดก็คือไปเล่นที่ลิงค์นี้
>> https://try.redis.io/
ลองเล่นกันเลยดีกว่า
คำสั่งของ Redis สามารถเข้าไปดูได้ที่ https://redis.io/commands โดยสามารถใช้เป็นตัวพิมพ์เล็กหรือพิมพ์ใหญ่ก็ได้
ลองเพิ่มข้อมูลกันก่อน
คำสั่งสำหรับเพิ่มข้อมูลก็คือ set <key> <value>
set hello BorntoDev
ลองเรียก hello ออกมาดู
เรียกข้อมูลได้ด้วยคำสั่ง get <key>
get hello
ลบข้อมูล
เวลาต้องการลบข้อมูลใช้คำสั่ง del <key>
พอลอง get hello ดูอีกครั้งก็จะเห็นว่ากลายเป็น nil ก็คือไม่มีค่าไปแล้ว
del hello
ประเภทข้อมูล
จากตัวอย่างก่อนๆที่ใช้คำสั่ง set และ get ข้อมูลที่เก็บใน Key จะเป็นประเภท String ซึ่งจริงๆแล้ว Redis สามารถเก็บข้อมูลชนิดอื่นๆได้อีก ลองดูกันซัก 3 ประเภทกันดีกว่า
List
เป็น List ที่เก็บค่า String แบบทั่วๆไปที่เรารู้จักกัน โดยข้อมูลใน List จะเรียงตามลำดับตามการใส่ค่าของเรา
เพิ่มข้อมูล
ใช้คำสั่ง LPUSH และ RPUSH ลองดูตัวอย่างด้านล่างประกอบ
LPUSH mylist a # ข้อมูลใน List คือ "a"
LPUSH mylist b # ข้อมูลใน List คือ "b","a"
RPUSH mylist c # ข้อมูลใน List คือ "b","a","c"
เรียกข้อมูลใน List
LRANGE เรียกข้อมูลในช่วง Index ที่ระบุ
LRANGE mylist 0 1
# ผลลัพธ์
1) "b"
2) "a"
LRANGE mylist 0 -1
# ผลลัพธ์
1) "b"
2) "a"
3) "c"
LINDEX เรียกข้อมูลตาม Index
LINDEX mylist 2 # ผลลัพธ์ "c"
ดูจำนวนข้อมูลใน List
LLEN mylist # ผลลัพธ์ (integer) 3
Set
ก็เป็นข้อมูลแบบไม่มีลำดับเหมือน Set ทั่วไปเช่นกัน
SADD myset hello
SADD myset BorntoDev
SADD myset jaa
SMEMBERS myset
# ผลลัพธ์
1) "hello"
2) "BorntoDev"
3) "jaa"
Hashes
สามารถเก็บข้อมูลภายในเป็นเหมือนกับ Key – Value ได้ เหมาะกับการใช้แทน Object
HSET user username BorntoDev
HMSET user pass 1234 age 20 id 1212312121
HGET user pass # ผลลัพธ์ "1234"
HGETALL user
# ผลลัพธ์
1) "username"
2) "BorntoDev"
3) "pass"
4) "1234"
5) "age"
6) "20"
7) "id"
8) "1212312121"
สำหรับการใช้งาน Redis ในงานจริงๆก็ยังต้องศึกษาการตั้งค่าอีกหลายอย่าง เข้าไปดูกันได้ในเว็บของ Redis ได้เลยครับ https://redis.io/documentation