การติดตั้ง Redis ลงใน Amazon Linux 2 (EC2)

2022.07.06

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

สวัสดีครับสำหรับเนื้อหาในบล็อกนี้จะเป็นวิธีการติดตั้ง 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 โดยทำตามลิงก์ด้านล่างนี้ครับ

  • วิธีติดตั้ง Amazon Linux 2 บน EC2 และเชื่อมต่อเซิร์ฟเวอร์ด้วยโปรแกรม PuTTY
  • 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 เพื่อแสดงผล

    ขั้นตอนนี้เราจะกำหนด 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 ครับและขอขอบคุณเนื้อหาจากลิ้งค์ด้านล่างนี้ที่เป็นส่วนใหญ่ในการเขียนบล็อกในครั้งนี้ครับ

  • Amazon ElastiCache คืออะไร? การแนะนำฟังก์ชันล่าสุดของ AWS ในปี 2022
  • 【Update】วิธีติดตั้ง Amazon Linux 2 บน EC2 และเชื่อมต่อเซิร์ฟเวอร์ด้วยโปรแกรม PuTTY