การติดตั้ง Redis ลงใน Amazon Linux 2 (EC2)
สวัสดีครับสำหรับเนื้อหาในบล็อกนี้จะเป็นวิธีการติดตั้ง Redis ลงใน Amazon Linux 2 ที่อยู่บน EC2 นะครับ สำหรับคนที่กำลังศึกษาและมองหาการใช้งาน Redis บน EC2 อยู่เนื้อหาในบล็อกนี้จะเป็นส่วนนึงที่ทำให้ท่านเข้าใจการใช้งาน Redis มากยิ่งขึ้นโดยก่อนจะเริ่มนะครับ ผมก็อยากจะอธิบายคราวๆเกี่ยว Redis ให้ทุกคนเข้าใจกันครับ
Redis คืออะไร ?
Redis เป็น open source ตัวนึงที่อยู่ในตระกูล NoSQL ซึ่งมีการเก็บข้อมูลใน memory ง่ายๆ นั้นก็คือการเก็บข้อมูลใน RAM นั่นเอง หลายๆคนอาจจะเข้าใจผิดคิดว่า Redis นั้นเป็น database แต่จริงๆแล้วมันคือ in-memory data structure store ด้วยความที่มีการเก็บข้อมูลใน RAM จึงทำให้มีความเร็วสูงในการบันทึกหรืออัพเดทข้อมูลแต่โดยส่วนมากจะนิยมใช้ Redis ในการเก็บข้อมูลพวก temp หรือ cashing ต่างๆ หลักการมีเพียงแค่ “type” กับ “value” เท่านั้น จะมีการกำหนด “type” และ “value” เพื่อเก็บค่าต่างๆ ตามที่เราต้องการ
สิ่งที่ต้องมี
การเตรียม EC2 สำหรับใช้ในการติดตั้ง Redis โดยทำตามลิงก์ด้านล่างนี้ครับ
Key pairs
Name: chawish-redis.ppk
Instance
Name & Tags: chawish-redis.ppk
Application and OS Images (Amazon Machine Image):Amazon Linux 2 AMI (HVM) - Kernel 5.10, SSD Volume
Instance type:t3a.nano
Security group name:chawish-redis
Description:chawish-redis
Inbound rule:Type:ssh ▼| Source type:My IP ▼| Source:xxx.xxx.x.xxx/32
Configure Storage:8 GiB gp2 ▼Root volume (Default)
การติดตั้ง Redis ใน Amazon Linux 2
เมื่อเราทำตามขั้นตอนครบทุกอย่างให้เราเปิดโปรแกรม Putty ขึ้นมาครับและรันคำสั่ง
sudo su -
เพื่อมอบสิทธิ์การใช้งานสูงสด ตามด้วยคำสั่งอัพเดท Package ต่างๆในเซิร์ฟเวอร์
yum update -y
และสุดท้ายนะครับ คือคำสั่งติดตั้ง Redis ให้เราคัดลองคำสั่งนี้้ไปใช้งานได้เลย
amazon-linux-extras install -y redis6
เมื่อระบบทำการติดตั้งเสร็จเรียบร้อยก็จะขึ้นหน้าแสดงผลแบบนี้ ให้เราทำการเปิดใช้งาน redis ด้วย 2 คำสั่งนี้ครับ เป็นการเปิดใช้งาน redis server ครับ
systemctl start redis
systemctl enable redis
เพียงเท่านี้เราก็ได้ทำการเปิดใช้งาน Redis ใน Amazon linux 2 เป็นที่เรียบร้อยแล้ว
การเชื่อมต่อ Redis
ในการเชื่อมต่อเพื่อใช้งาน Redis นั้นให้เราใช้งานคำสั่งนี้เพื่อเชื่อมต่อและเข้าถึง Redis ที่ติดตั้งอยู่ในเซิร์ฟเวอร์
redis-cli
และถัดมาเราจะทำการทดสอบการใช้งาน redis พื้นฐานกันนะครับ
ทดสอบการใช้งาน
ในขั้นตอนนี้เราจะทำการทดสอบระบบพื้นฐานของ Redis นะครับ โดยจะแบ่งออกเป็น 3 ส่วนได้แก่
การสร้าง TYPE กับ VALUE เพื่อแสดงผล
ขั้นตอนนี้เราจะกำหนด Type กับ Value ขึ้นมานะครับ โดยในตัวอย่างผมจะใช้คำสั่งนี้
SET sample_key_1 "Hello Redis!"
รูปแบบของคำสั่งจะประกอบด้วย
SET [ชื่อ TYPE] [ชื่อ VALUE]
ถ้าตามในตัวอย่างก็จะเท่ากับว่าผมกำหนดให้
ชื่อ TYPE: sample_key_1
ชื่อ VALUE: "Hello Redis!"
จากนั้นผมก็จะพิมคำสั่งแสดงผลข้อมูลนั้นก็คือ
GET sample_key_1
GET [ชื่อ TYPE ที่เราต้องการจะดูข้อมูล]
ก็จะแสดงผลแบบนี้ครับ
การกำหนดเวลาหมดอายุของข้อมูล
ในส่วนนี้เราจะทำการตั้งค่าเวลาหมดอายุของข้อมุลกันบ้างนะครับ ซึ่งถ้าถึงเวลาข้อมูลนั้นก็จะถูกลบไปจากระบบนะครับ โดยขั้นตอนแรกให้เราสร้าง TYPE และ VALUE ขึ้นมาก่อนโดยผมจะกำหนดเป็น
ชื่อ TYPE: expire_key
ชื่อ VALUE: "EXPIRE Value!"
SET expire_key "EXPIRE Value!"
และลอง GET ข้อมูลมาแสดงผลเพื่อตรวจสอบว่ามีการสร้างข้อมูลถูกต้องหรือไม่
GET expire_key
เมื่อตรวจสอบข้อมูลเสร็จเรียบร้อยเราก็จะมากำหนดเวลาหมดอายุของข้อมูลนี้กันครับ โดยใช้คำสั่ง
EXPIRE expire_key 3
EXPIRE [ชื่อ TYPE] [เวลาหน่วยเป็นวินาที]
ซึ่งถ้าตามตัวอย่างก็จะเป็นการกำหนดให้ข้อมูล TYPE: expire_key หมดอายุภายใน 3 วินาทีหลังจากที่มีการรันคำสั่งนี้
จะสังเกตว่าเมื่อเรารันคำสั่งนี้ไปแล้วระบบจะตอบกลับมาว่า 1
เป็นสถานะที่บอกว่า => เวลาได้ถูกตั้งค่าแล้วครับ
หลังจากนั้นให้เราพิมคำสั่ง
TTL expire_key
เพื่อทำการตรวจสอบระยะเวลาที่เหลืออยู่ของข้อมูลชุดนี้
TTL [ชื่อ TYPE ที่เราต้องการจะดูเวลาหมดอายุ]
และเมื่อเรารันคำสั่งนี้ไปแล้วระบบจะตอบกลับมาว่า -2
เป็นสถานะที่บอกว่า => ข้อมูลหมดอายุแล้ว
หลังจากนี้ให้ลองใช้คำสั่ง GET expire_key
เพื่อเรียกดูข้อมูลเดิมนะครับ เมื่อรันแล้วเราจะเห็นระบบตอบกลับมาว่า(nil)
เป็นสถานะที่บอกว่า => ข้อมูลได้หายไปแล้วตามรูปภาพด้านล่างครับ
การแสดงสถานะของระบบ
ขั้นตอนต่อไปผมจะสร้าง TYPE และ VALUE ขึ้นมาใหม่เพื่อทดสอบการแสดงสถานะของระบบและเวลาหมดอายุแบบ real time นะครับ โดยใช้คำสั่ง
SET expire_key_2 "EXPIRE Value!"
TTL expire_key_2
จะสังเกตว่าถ้าเราใช้งานคำสั่ง TTL
กับ TYPE ที่ยังไม่มีการตั้งเวลาหมดอายุหรือ EXPIRE ระบบจะตอบกลับมาว่า
-1
เป็นสถานะที่บอกว่า => ชื่อ TYPE นี้ยังไม่ถูกตั้งเวลาหมดอายุ
และผมจะทำการกำหนดเวลาหมดอายุของข้อมูลนี้ ภายใน 30 วินาทีโดยใช้คำสั่ง
EXPIRE expire_key_2 30
แล้วที่นี้ผมจะลองรันคำสั่ง
TTL expire_key_2
ไปเรื่อยๆ ภายในระยะเวลา 30 วินาทีนะครับ จะสังเกตเห็นได้ว่าตัวเลขจะเริ่มน้อยลงเรื่อยๆ นะครับ นั้นเป็นตัวเลขที่แสดงว่าเวลาหมดอายุของข้อมุลเริ่มใกล้เข้าไปทุกที จนในที่สุดเวลาสถานะก็ขึ้น -2
เป็นการบอกว่าข้อมูลนี้ได้หมดอายุลงแล้วครับ
สรุป
ในการจะใช้งาน Redis เราต้องมีการศึกษาคำสั่งพื้นฐานก่อน เพื่อที่เวลาระบบส่งข้อความกลับมาเราจะได้รู้ว่าหมายความว่ายังไง และสุดท้ายนี้ผมก็หวังว่าเนื้อหาภายในบล็อกนี้จะมีส่วนช่วยให้ทุกท่านได้รับความรู้เพิ่มมากขึ้นเกี่ยวกับการใช้งาน Redis ครับและขอขอบคุณเนื้อหาจากลิ้งค์ด้านล่างนี้ที่เป็นส่วนใหญ่ในการเขียนบล็อกในครั้งนี้ครับ