Coding Gun

จัดการ Redis ผ่าน GUI ด้วย RedisInsight

RedisInsight คือเครื่องมือที่ช่วยจัดการ Redis database ผ่านทางหน้า GUI โดยไม่ต้องใช้ Command Line เราสามารถเลือกติดตั้ง RedisInsight ด้วยวิธีต่างๆดังนี้

Install RedisInsight

เราสามารถเลือก Install RedisInsight ได้จากทางเลือกต่างๆดังนี้

  1. Download Installer
  2. ใช้ Docker

Download RedisInsight

เราสามารถเลือก Download Installer ตาม Operating System ต่างๆได้จากที่นี่ แต่เราต้องกรอก E-mail และรายละเอียดลงไปก่อนการ Download ดังรูป

Download RedisInsight
เลือก OS และกรอกข้อมูลก่อน Download Installer

ถ้าอยากให้ติดตั้งได้ง่ายขึ้นแนะนำให้ติดตั้งผ่าน Window Store หรือ App Store จะง่ายกว่ามาก

Install RedisInsight ผ่านทาง App Store
Install RedisInsight ผ่านทาง App Store

Install Radis บน Docker

อีกทางเลือกนึงคือการติดตั้ง Redis โดยใช้ Docker ซึ่งจะสามารถใช้ได้ทุก platform โดยมีขั้นตอนต่างๆ ดังนี้

  1. เริ่มจากการ Pull image ลงมาก่อน

    1
    
    $ docker pull redis/redisinsight
    

    Image นี้จะมีเฉพาะ RedisInsight เท่านั้น เราต้องมี Redis Server ที่ทำงานอยู่แล้ว หรือถ้าอยากติดตั้ง RedisInsight ที่มี Redis Server มาด้วยให้เปลี่ยนไปใช้ Image ของ Redis Stack(redis/redis-stack:latest) ในบทความนี้เราจะใช้ Container ที่มีเฉพาะ RedisInsight เท่านั้น

  2. สร้าง Redisinsight Container ด้วยคำสั่ง

    1
    2
    
    $ docker run -d --name redisinsight \
                 -p 5540:5540 redis/redisinsight:latest
    

    RedisInsight จะใช้ port 5540 เป็น default port

  3. ถ้าต้องการเก็บข้อมูลการใช้งาน RedisInsight ไว้เราต้อง Mount Volume ออกมาด้วยคำสั่ง

    1
    2
    3
    
    $ docker run -d --name redisinsight \
                 -p 5540:5540 redis/redisinsight:latest \
                 -v redisinsight:/data
    

    ใน docker command นี้จะใส่ parameter -v เข้าไปเพื่อสร้าง volume ชื่อ redisinsight สำหรับเก็บข้อมูลการใช้งาน RedisInsight

  4. เข้าไปหน้าแรกของ RedisInsight ได้ที่ http://localhost:5540

วิธีการใช้งาน RedisInsight

  1. Accept License เมื่อเข้ามาในหน้าแรกของ RedisInsight ที่ http://localhost:5540 เราต้องยอมรับข้อกำหนดและเงื่อนไขการใช้งานเสียก่อน โดยเลือก I have read and understood the Terms แล้วกดปุ่ม Submit

    Get Starting RedisInsight

  2. Connect Database โดยวิธีการ Connect ไปยัง Redis จะมีอยู่ 2 ทางเลือกคือ

    • Add Database แบบ Manual(ระบุทุกอย่างเองทั้งหมด)
    • Autodiscovery Database สำหรับผู้ใช้งาน Redis Cloud, Redis Enterprise หรือ Redis Sentinel

    เนื่องจากเราเป็น Docker Container ที่มีแค่ RedisInsight เราเลยต้องสร้าง Connection โดยเลือก Add connection details manually

    RedisInsight Connecting Database

    จากนั้นกรอกข้อมูลตามรูป ซึ่ง Redis Server ผมใช้เป็น Contaienr เหมือนกันเลยจะต้องใส่ URL เป็น host.docker.internal และใช้ Default Port ที่ 6379

    RedisInsight Connecting Database

  3. Home เราจะพบกับหน้าการใช้งาน Database

    RedisInsight Database Dashboard

    โดยที่ด้านซ้าย จะแสดง List ของ Keys ที่เราได้สร้างขึ้น และที่ด้านขวาจะเป็น Value(data) ที่อยุ่ใน Key นั้น ซึ่งตอนนี้เราเพิ่งจะเริ่มสร้าง Database ขึ้นมาดังนั้นเราจึงยังไม่มี Keys ใดๆ ในตอนนี้

    ถ้าเรา Add Key เข้าไปแล้วแต่ยังไม่ขึ้น(Redis Insight ไม่ได้แสดงผลแบบ Realtime) เราสามารถกดปุ่ม Refresh ที่มุมขวาบนได้ ดังรูป

    RedisInsight Refresh Keys
    Refresh Key ตรงนี้

  4. Add Key ในการเพิ่ม Key ใหม่ เราต้องกดปุ่ม + Key ที่มุมขวาบนดังรูป

    RedisInsight Add New Key

    ใน Redis เราสามารถเลือกประเภท(Data types)ของ Key ได้ โดยจะมีทางเลือกต่างๆ ดังนี้

ซึ่งสามารถอ่านคำอธิบายของแต่ละ Datatype ได้ที่บทความเรื่อง Redis คืออะไร?

Redis Datatype
Data types พื้นฐานใน Redis

ในลำดับต่อไปเราไปดูวิธีการสร้าง Key ใน Datatypes ต่างๆ

String

Key แรกที่เราจะสร้างคือ String ซึ่งเราจะใช้เก็บข้อมูลที่เป็นข้อความหรือตัวเลขก็ได้ ซึ่งสิ่งที่เราต้องกำหนดมีดังนี้

RedisInsight Key String

ทดสอบการทำงานผ่าน Redis CLI

เราสามารถ run Redis Command ผ่านทาง CLI ได้ด้วยการกดเลือก Tab CLI ที่มุมซ้ายล่าง ดังรูป

Run Redis Command in RedisInsight
เปิด Redis CLI ขึ้นมาเพื่อ run Redis Command
คำสั่งที่ใช้สำหรับ String

Hash

Hash เป็น Datatype ที่จะเก็บข้อมูลเป็น Object ให้นึกถึง Dictionary ใน Programming Language ทั่วไป หรือ Json ใน Javascript เราต้องมีชื่อ Field และ Value ของ Field นั้น

สิ่งที่เราต้องกำหนดในหน้า New Key คือ

หลังจากนั้นกดปุ่ม Add Key

RedisInsight Add New Key

ในตัวอย่างนี้เราจะสร้าง Object ชื่อ Demo-Hash ซึ่งประกอบไปด้วย Field ชื่อ name, lastName, Age และ job ตามลำดับ

RedisInsight Keys

หลังจากเพิ่ม Key เข้ามาแล้ว ถ้าเราต้องการแก้ไขหรือลบ Field เราสามารถกดปุ่ม Edit(รูปดินสอ) หรือ Delete(รูปถังขยะ) ที่อยู่ในแต่ละ Field ได้เลย

ทดสอบดึงข้อมูลผ่าน Redis CLI

เข้าไปที่ Redis CLI ตามตัวอย่างก่อนหน้านี้ แล้วลอง run Redis Commands เหล่านี้

List

List เป็นการเก็บข้อมูลลงใน Array ซึ่งการเก็บจะเป็นการเก็บข้อมูลแบบมีลำดับในการเข้า

สิ่งที่เราต้องใส่ในหน้า New Key มีดังนี้

RedisInsight Add New Key List

หลังจากนั้นจะเราจะเช้าไปเพิ่ม Element อื่นๆในหน้า Edit ดังรูป ถ้าต้องการเพิ่ม Element ใหม่ เราสามารถปุ่ม + ที่มุมด้านขวาบนได้

RedisInsight Key List
การเพิ่ม Element ใหม่ เราสามารถเลือกได้ว่าให้เพิ่มเข้าไปเป็นสมาชิกตัวแรกหรือตัวสุดท้าย

การทำงานของ List ใน Redis จะแตกต่างจาก Array หรือ List อื่นๆตรงที่เราจะเพิ่มสมาชิกเข้าไปเป็นตัวแรกหรือตัวสุดท้ายก็ได้

RedisInsight Key List

ทดสอบดึงข้อมูลผ่าน Redis CLI

ตัวอย่างการเรียกข้อมูล List ออกมาแสดงผล มีดังนี้

Set

การเก็บข้อมูลแบบ Set จะเป็นข้อมูลที่เหมือน Array แต่จะมีลักษณะที่แตกต่างจาก Array ดังนี้

  1. ข้อมูลจะไม่มีลำดับ ไม่มีการเรียงก่อนหรือหลัง
  2. ข้อมูลจะต้องไม่ซ้ำกัน(unique) ถ้าซ้ำกันถือว่าเป็นตัวเดียวกัน

สิ่งที่เราต้องระบุในตอนสร้าง Key มีดังนี้

RedisInsight Add New Key Set
ต่อให้เราพิมพิ์ชื่อสมาชิกซ้ำกันกี่ครั้งก็ตาม Redis จะมองเป็นสมาชิกตัวเดียวตามหลักการของ Set

RedisInsight Key Set

ทดสอบดึงข้อมูลผ่าน Redis CLI

Sorted Set

เนื่องจากการไม่มีลำดับของ Set ทำให้เราไม่สามารถเรียงลำดับของข้อมูลที่อยู่ใน Set ได้ดังนั้น Redis จึงมี Sorted Set เพื่อให้เราใส่ Score เพิ่มเข้าไปได้ แล้ว Redis จะนำ Score นี้ไปจัดเรียงสมาชิกใน Set ให้เรา

สิ่งที่เราต้องระบุในตอนสร้าง Key มีดังนี้

RedisInsight Add New Key Sorted Set

ทดสอบดึงข้อมูลผ่าน Redis CLI

JSON

เป็นการเก็บ JSON เข้าไปใน Database ซึ่งถ้าจะใช้ Datatype ประเภทนี้เราต้องมี Module ชื่อว่า RedisJson ติดตั้งเข้ามาในเครื่อง หรืออาจใช้ container ชื่อ redislabs/rejson หรือ redis/redis-stack-server แทน redis ธรรมดา

สิ่งที่เราต้องระบุในตอนสร้าง Key มีดังนี้

RedisInsight Add New Key JSON

หลังจากสร้าง Key ขึ้นมาแล้วเราสามารถเข้ามาเพิ่มหรือลด Fields ผ่านทาง UI ได้ดังรูป เช่น ถ้าเราต้องการเพิ่มข้อมูลให้กด + ที่บรรทัดล่างสุด

RedisInsight Key JSON
เพิ่ม Field เข้าไปใน JSON

ทดสอบดึงข้อมูลผ่าน Redis CLI

Stream

Stream เป็น Datatypes ที่เหมือนกับ Log คือเราสามารถเพิ่มข้อมูล(Append)เข้าไปใน Field เดียวกันไปเรื่อยๆได้ โดยใช้ Timestamp หรือตัวเลข เป็น Primary key

สิ่งที่เราต้องระบุในตอนสร้าง Key มีดังนี้

จากนั้นเพิ่มค่า Value ตามที่ต้องการ และกด Submit

RedisInsight Add New Key Stream

เราสามารถเพิ่มข้อมูลเช้าไปได้โดยการกด + ตรงบรรทัดล่างสุด

RedisInsight Key Stream

ทดสอบดึงข้อมูลผ่าน Redis CLI

Phanupong Permpimol
Follow me