อย่างไรและทำไมต้องเรียกใช้ Redis ใน Docker

เผยแพร่แล้ว: 2023-05-02

Redis เป็นฐานข้อมูลในหน่วยความจำที่มีความพร้อมใช้งานสูง ที่เก็บข้อมูลคีย์-ค่าที่คงอยู่ของดิสก์เหมาะอย่างยิ่งสำหรับการใช้งานที่มีความพร้อมใช้งานสูงหลายรายการ

ในทางกลับกัน Docker เป็นเครื่องมือสำหรับการบรรจุแอปพลิเคชันและบริการ แยกสภาพแวดล้อมและอนุญาตให้ทำงานแยกกัน คุณสามารถใช้ Docker เป็นตัวจัดการแพ็คเกจสำหรับแอปพลิเคชันและบริการที่มีการพึ่งพา การกำหนดค่า สคริปต์ ฯลฯ ที่จำเป็นทั้งหมด สคริปต์ที่เรียกว่า Dockerfile จะอยู่ในคอนเทนเนอร์ Docker และอนุญาตให้คุณปรับใช้คอนเทนเนอร์เป็นเอนทิตีเดียว

บทความนี้จะสอนวิธีการใช้เทคโนโลยีโอเพ่นซอร์สทั้งสองนี้อย่างมีประสิทธิภาพ นอกจากนี้ยังให้เหตุผลว่าเหตุใดการเรียกใช้คลัสเตอร์ Redis ภายในคอนเทนเนอร์ Docker จึงมีความสำคัญ และข้อดีและประโยชน์ของการทำเช่นนั้นเมื่อเปรียบเทียบกับการเรียกใช้คลัสเตอร์ Redis บนเครื่องเสมือนหรือเซิร์ฟเวอร์ Bare Metal

การใช้งานต่าง ๆ ของ Redis

Redis มีข้อดีหลายประการ การใช้งานที่ได้รับความนิยมสูงสุด ได้แก่ :

  • แคชฐานข้อมูลคีย์-ค่าแบบกระจาย
  • นายหน้าข้อความ
  • เซิร์ฟเวอร์แคชวัตถุถาวร

นอกจากนี้ Redis ยังรองรับประเภทข้อมูลและโครงสร้างที่หลากหลาย ทำให้เหมาะสำหรับใช้เป็นทั้งชั้นฐานข้อมูลหลักและรองสำหรับแอปพลิเคชัน นอกจากนี้ยังสนับสนุนรายการ สตรีม แฮช ชุด ฯลฯ

อย่างไรก็ตาม คุณสามารถผลักดันประโยชน์ของ Redis ให้มากขึ้นได้โดยการบรรจุลงในคอนเทนเนอร์

Redis ดีที่สุดในคอนเทนเนอร์! เรียนรู้วิธีใช้ Redis & Docker อย่างมีประสิทธิภาพและปลดล็อกข้อดีของการบรรจุแอป Redis ของคุณ - ทั้งหมดในโพสต์นี้ ️ คลิกเพื่อทวีต

Redis ดีที่สุดในคอนเทนเนอร์

Redis เป็นหนึ่งในอิมเมจ Docker ที่ได้รับความนิยมมากที่สุดในรีจิสทรี Docker โดยมีการดาวน์โหลดมากกว่าหนึ่งพันล้านครั้ง เหตุผลในการบรรจุแอปพลิเคชัน Redis คือการได้รับประโยชน์จาก Docker และการสนับสนุนจากชุมชนสำหรับกรณีการใช้งาน Redis ที่พบบ่อยที่สุด

อิมเมจ Redis Docker มีชุมชนโอเพ่นซอร์สที่สร้างและดูแลเอกสารที่ชัดเจน และเหนือสิ่งอื่นใด Docker มีความน่าเชื่อถือสูงและช่วยให้ใช้งานได้ง่ายและมีความยืดหยุ่น

สะดวกในการใช้

นักเทียบท่าแยกสภาพแวดล้อมสำหรับทั้งแอพและบริการที่ทำงานภายในคอนเทนเนอร์ การแยกหมายความว่าคุณสามารถสร้างแพ็คเกจ สร้าง และจัดส่งอิมเมจ Redis ที่ทำงานโดยไม่คำนึงถึงระบบปฏิบัติการโฮสต์ ซึ่งทำให้การพัฒนาและเรียกใช้แอปพลิเคชัน Redis ภายใน Docker เป็นเรื่องง่าย นอกจากนี้ Docker Desktop ยังช่วยลดความยุ่งยากในการตั้งค่าสภาพแวดล้อมการพัฒนาท้องถิ่นที่สอดคล้องกัน ซึ่งเป็นประโยชน์อย่างยิ่งสำหรับทีมขนาดใหญ่

ความปลอดภัย:

คุณสามารถสแกนหาช่องโหว่ด้านความปลอดภัยด้วย Redis ภายในคอนเทนเนอร์ นักเทียบท่าใช้ Snyk ซึ่งเป็นเครื่องมือที่ให้การมองเห็นความปลอดภัยของภาพนักเทียบท่า โดยจะสแกนคอนเทนเนอร์ Docker และให้รายละเอียดและการแก้ไขในกรณีที่อิมเมจเสียหาย นักเทียบท่ายังสามารถสร้างรายการซอฟต์แวร์ (SBOM) สำหรับสแกนการขึ้นต่อกันทั้งหมดที่ใช้ในการสร้างอิมเมจคอนเทนเนอร์ แม้ว่าจะยังอยู่ในช่วงทดลองก็ตาม

ความยืดหยุ่น

Docker พร้อมใช้งานสำหรับระบบปฏิบัติการและแอปพลิเคชันที่ใช้ Unix และ Windows ส่วนใหญ่ เนื่องจากคุณใช้คอนเทนเนอร์เพื่อแยกซอฟต์แวร์ออกจากสภาพแวดล้อมเพื่อให้แน่ใจว่าทำงานได้กับทุกระบบ แอปและบริการ Redis จึงทำงานอยู่เสมอแม้จะมีโครงสร้างพื้นฐานก็ตาม

ความน่าเชื่อถือ

นักเทียบท่าช่วยให้คุณเรียกใช้ปริมาณงานในคอนเทนเนอร์ในทุกสภาพแวดล้อมได้อย่างน่าเชื่อถือ Redis มีความน่าเชื่อถือใน Docker เนื่องจากคอนเทนเนอร์ Docker ถ่ายภาพสแน็ปช็อตของอิมเมจคอนเทนเนอร์เป็นระยะ ช่วยให้คุณเปลี่ยนกลับเป็นสแน็ปช็อตเหล่านี้ได้ในกรณีที่ฐานข้อมูลเสียหรือเสียหาย คุณยังสามารถสร้างโวลุ่ม Docker ได้ด้วยการเมานต์ไดเร็กทอรีที่มีไฟล์ฐานข้อมูล Redis ภายในคอนเทนเนอร์

ปริมาณนักเทียบท่าช่วยรักษาคอนเทนเนอร์ให้ปลอดภัยจากการสูญหายของข้อมูลโดยไม่ตั้งใจทุกรูปแบบ อย่างไรก็ตาม ข้อแม้คือปริมาณนักเทียบท่าไม่มีสแนปชอตรูปภาพ คุณต้องบันทึกหรือสำรองข้อมูลด้วยตนเองในไฟล์ฐานข้อมูล Redis เป็นระยะๆ

วิธีใช้ Redis กับนักเทียบท่า

หากต้องการวางที่เก็บ Redis ของคุณไว้ในคอนเทนเนอร์ Docker คุณต้องมี Docker ในสภาพแวดล้อมเป้าหมาย คำแนะนำต่อไปนี้แสดงวิธีการติดตั้ง Docker บน Windows

คุณสามารถทำตามคำแนะนำบนเว็บไซต์ Docker สำหรับระบบปฏิบัติการ Unix หรือ Unix หลังจากติดตั้งและกำหนดค่า คุณสามารถสร้างเครือข่ายภายในคอนเทนเนอร์ Docker ของคุณได้ จากนั้นคุณสามารถติดตั้ง Redis และสร้างฐานข้อมูลได้ สุดท้าย คุณสามารถดำเนินการกับฐานข้อมูล Redis ของคุณได้

ก่อนอื่น ให้ติดตั้ง Docker บนระบบปฏิบัติการของคุณ เลือกที่จะไปที่ Docker Hub และสร้างบัญชี คุณต้องมีบัญชีเพื่อสร้างและเผยแพร่ภาพของคุณ

แบบฟอร์มลงทะเบียนฮับ Docker
ฮับนักเทียบท่า

หลังจากสร้างบัญชีแล้ว ให้ลงชื่อเข้าใช้ Docker Hub และดาวน์โหลด Docker Desktop เวอร์ชันล่าสุดของระบบปฏิบัติการของคุณ

หน้าดาวน์โหลดสำหรับ Docker Desktop พร้อมตัวเลือกสำหรับระบบปฏิบัติการ
หน้าดาวน์โหลดนักเทียบท่า

หลังจากขั้นตอนการติดตั้ง ให้ไปที่หน้าต่างเทอร์มินัลเพื่อดูว่า Docker Engine พร้อมที่จะทำงานหรือไม่ และป้อนคำสั่งต่อไปนี้:

 docker --version
ตรวจสอบเวอร์ชันของ Docker ที่ติดตั้ง
ติดตั้งเวอร์ชันนักเทียบท่าแล้ว

จากนั้นพิมพ์: docker-compose --version

ตรวจสอบเวอร์ชั่นของ Compose ที่ติดตั้งกับ Docker
ติดตั้งการเขียนด้วย Docker

เขียนเป็นเครื่องมือสำหรับกำหนดและเรียกใช้แอปพลิเคชัน Docker หลายคอนเทนเนอร์โดยใช้ไฟล์ YAML ซึ่งคุณใช้เพื่อกำหนดค่าบริการแอปพลิเคชัน

คุณสามารถเรียกใช้ Dockerized Redis เพื่อตรวจสอบว่า Docker Engine เปิดใช้งานแล้วโดยใช้รหัสด้านล่าง ตัวอย่างนี้รันอิมเมจ Redis จาก Docker Hub และตั้งชื่อว่า my-redis-container

 docker run --name my-redis-container -d redis
เรียกใช้อิมเมจ Redis จาก Docker Hub ชื่อ my-redis-container
อิมเมจ Redis จาก Docker Hub ชื่อ my-redis-container

เนื่องจากคุณไม่มีรูปภาพในเครื่อง Docker จึงดึงรูปภาพ Redis จาก Docker Hub

ตอนนี้ คุณสามารถเปิด Docker Desktop เพื่อยืนยันว่าได้ดึงอิมเมจ Redis บนแดชบอร์ด ให้คลิก รูปภาพ บนแผงด้านซ้าย

ตรวจสอบว่าอิมเมจ Redis ของคุณเปิดใช้งานจาก Docker Desktop
เดสก์ท็อปนักเทียบท่า

ตอนนี้คุณสามารถสร้างเครือข่าย โปรดทราบว่าไดรเวอร์ Docker ใช้บริดจ์หรือไดรเวอร์เครือข่ายในตัวซ้อนทับเพื่อสร้างเครือข่าย Docker คุณยังสามารถติดตั้งและใช้ไดรเวอร์เครือข่ายของบริษัทอื่นได้

ข้อแตกต่างคือเครือข่ายบริดจ์ถูกแยกออกจากกันในการติดตั้ง Docker Engine เดียว ในขณะที่เครือข่ายโอเวอร์เลย์ขยายโฮสต์ Docker หลายโฮสต์ โดยแต่ละโฮสต์จะรันเอ็นจิ้น

พิมพ์:

 docker network create -d bridge kinsta-demo-network
สร้างเครือข่าย Docker ใหม่ด้วยไดรเวอร์บริดจ์
เครือข่ายนักเทียบท่าพร้อมไดรเวอร์บริดจ์

หากคุณไม่ได้ระบุไดรเวอร์ใดๆ ตามค่าเริ่มต้น Docker จะใช้ไดรเวอร์บริดจ์เพื่อสร้างเครือข่ายใหม่ เนื่องจากจะสร้างไดรเวอร์บริดจ์โดยอัตโนมัติเมื่อคุณติดตั้ง Docker Engine อย่างไรก็ตาม หากคุณเรียกใช้คอนเทนเนอร์ Docker ด้วยคำสั่งเรียกใช้ Docker ก็จะไม่ใช้เครือข่ายนี้

เมื่อคุณมีเครือข่ายแล้ว การติดตั้ง Redis ภายในคอนเทนเนอร์ Docker เป็นเรื่องถัดไป โดยพิมพ์: docker pull redis

ดึงภาพ Redis จาก Docker Hub
ดึงภาพ Redis จาก Docker Hub

ในการตรวจสอบว่าอิมเมจ Redis ได้รับการติดตั้งอย่างถูกต้อง ให้เรียกใช้หนึ่งในคำสั่งต่อไปนี้:

 docker images
 docker image ls
แสดงรายการอิมเมจ Docker ที่มีอยู่ในเทอร์มินัลของผู้ใช้
อิมเมจ Docker ที่มีอยู่ในเทอร์มินัลของผู้ใช้


จากนั้น ให้คุณสร้างและเริ่มคอนเทนเนอร์ Redis โดยเรียกใช้คำสั่งต่อไปนี้:
 docker run -it –name dev_kinsta_redis_container -d redis
สร้างและเรียกใช้คอนเทนเนอร์ Docker
คอนเทนเนอร์นักเทียบท่า

ตรวจสอบว่า Redis ทำงานในคอนเทนเนอร์ โดยพิมพ์: docker ps

ตรวจสอบว่า Redis เปิดใช้งานอยู่ในคอนเทนเนอร์
ตรวจสอบว่า Redis เปิดใช้งานอยู่ในคอนเทนเนอร์

ตอนนี้คุณได้ยืนยันว่าคอนเทนเนอร์ Docker ของคุณเปิดใช้งานแล้ว คุณสามารถเพิ่มคอนเทนเนอร์ไปยังเครือข่ายได้ ประเภท: docker network connect

เพิ่มคอนเทนเนอร์ Docker ให้กับเครือข่ายนักเทียบท่าที่สร้างขึ้น
เพิ่มคอนเทนเนอร์ Docker ให้กับเครือข่ายนักเทียบท่าที่สร้างขึ้น

เมื่อทุกอย่างทำงานตามที่คาดไว้ ขั้นตอนต่อไปคือการตรวจสอบว่าเซิร์ฟเวอร์ Redis ของคุณที่ทำงานอยู่ภายใน Docker พร้อมที่จะยอมรับการเชื่อมต่อ ในการทำเช่นนั้น ให้ใช้ docker logs

ตรวจสอบว่าอิมเมจ Redis กำลังทำงานภายในคอนเทนเนอร์ Docker
ตรวจสอบว่าอิมเมจ Redis กำลังทำงานภายในคอนเทนเนอร์ Docker

ถัดไป คุณต้องสร้างฐานข้อมูลเนื่องจากคุณต้องการวิธีเชื่อมต่อกับคอนเทนเนอร์ Redis เพื่อเรียกใช้คำสั่งบนเซิร์ฟเวอร์ โดยพิมพ์: docker exec -it bash คุณสามารถใช้ชื่อคอนเทนเนอร์และรหัสคอนเทนเนอร์แทนกันได้

เชื่อมต่อกับอินสแตนซ์คอนเทนเนอร์ Redis
เชื่อมต่อกับอินสแตนซ์คอนเทนเนอร์ Redis

ในคอนเทนเนอร์ ใช้ CLI เพื่อเรียกใช้คำสั่ง โปรดทราบว่า Redis จะติดตั้งโฮสต์ Docker โดยอัตโนมัติ หากต้องการใช้ Redis-CLI ให้พิมพ์: redis-cli

ใช้ Redis CLI เพื่อรันคำสั่ง Redis
ใช้ Redis CLI เพื่อรันคำสั่ง Redis

ซึ่งจะเชื่อมต่อคุณกับพอร์ตเริ่มต้นสำหรับ Redis บนโลคัลโฮสต์ ประเภท: ping และการตอบสนองควรเป็น pong

ทดสอบเพื่อดูว่าการเชื่อมต่อ Redis เปิดใช้งานอยู่หรือไม่
ทดสอบเพื่อดูว่าการเชื่อมต่อ Redis เปิดใช้งานอยู่หรือไม่

จากนั้น เลือกฐานข้อมูลภายในเซิร์ฟเวอร์ Redis ของคุณโดยพิมพ์ select แม้ว่าฐานข้อมูลดีฟอลต์คือ 0 ให้เลือก db 1

เลือกฐานข้อมูล Redis เฉพาะ
เลือกฐานข้อมูล Redis เฉพาะ

ถัดไป ใส่ข้อมูลลงในฐานข้อมูล ใช้คำสั่ง Redis SET โดยพิมพ์ SET <key> <value>

ตัวอย่างเช่น:

 SET mykey "Hello"

หากต้องการรับรหัสเดียวกัน ให้พิมพ์:

 get myKey
แทรกและดึงข้อมูลจาก Redis
แทรกและดึงข้อมูลจาก Redis

หากต้องการรับค่าของคีย์ ให้เรียกใช้ get สิ่งนี้ส่งคืนค่า จากนั้น ตรวจสอบฐานข้อมูล Redis ของคุณโดยพิมพ์ MONITOR

ตรวจสอบฐานข้อมูล Redis
ตรวจสอบฐานข้อมูล Redis

สุดท้าย หยุดเซิร์ฟเวอร์ Redis โดยออกจาก CLI พิมพ์ exit สองครั้งเพื่อออกจาก CLI และ Redis

ออกจาก Redis CLI
ออกจาก Redis CLI

สุดท้าย หยุดไม่ให้คอนเทนเนอร์ Redis ทำงานโดยพิมพ์ docker stop

ดำเนินการคำสั่งเพื่อหยุดการทำงานของคอนเทนเนอร์ Docker
ดำเนินการคำสั่งเพื่อหยุดการทำงานของคอนเทนเนอร์ Docker

Redis กับ DevKinsta

DevKinsta ให้คุณเชื่อมต่อเว็บไซต์ WordPress กับฐานข้อมูล Redis ด้วย DevKinsta ส่วนเสริม Redis ทำงานได้อย่างราบรื่นเป็นแคชออบเจกต์เพื่อคงข้อมูลไว้ในการโหลดหลายๆ หน้า ซึ่งหมายความว่าเมื่อใช้โปรแกรมเสริม Redis คุณสามารถใช้แคชเพื่อนำออบเจ็กต์กลับมาใช้ใหม่แทนการสอบถามฐานข้อมูล MySQL อย่างต่อเนื่อง

หลังจากดาวน์โหลดและตั้งค่า DevKinsta แล้ว ให้ติดตั้ง Docker Desktop เป็นการอ้างอิง ซึ่งใช้สร้างไฟล์สภาพแวดล้อมในเครื่องภายในคอนเทนเนอร์ ด้วยการตั้งค่านี้ คุณสามารถกำหนดค่าส่วนเสริม Redis ใน Devkinsta

ดังนั้น Add-on ของ Redis สำหรับ DevKinsta จึงสามารถใช้เป็นแหล่งสำรอง ซึ่งช่วยลดภาระของฐานข้อมูลหลัก เพิ่มเวลาตอบสนอง และทำให้แอปพลิเคชันทำงานเร็วขึ้น

สิ่งนี้แปลเป็นแอปที่จัดการโหลดและปรับขนาดได้อย่างมีประสิทธิภาพมากขึ้น ลองอ่านโพสต์นี้เพื่อใช้ปลั๊กอิน Redis กับเว็บไซต์ของคุณ

Redis + Docker = การแข่งขันที่สร้างขึ้นในสวรรค์! นี่คือเหตุผลที่ทำให้แอป Redis อยู่ในคอนเทนเนอร์เป็นหนทางที่จะไปและวิธีใช้ประโยชน์สูงสุดจากมัน คลิกเพื่อทวีต

สรุป

มีข้อดีมากมายในการเรียกใช้ Redis ภายในคอนเทนเนอร์ Docker มีสภาพแวดล้อมแบบแซนด์บ็อกซ์สำหรับแอปพลิเคชันของคุณ ดังนั้นคุณจึงไม่ต้องกังวลเกี่ยวกับแพลตฟอร์มที่คุณปรับใช้แอปพลิเคชันของคุณอีกต่อไป นอกจากนี้ Docker ยังช่วยให้ใช้งานง่าย ยืดหยุ่น และเชื่อถือได้สูง

ในเรื่องความปลอดภัย คุณสามารถตรวจสอบและสแกนหาช่องโหว่ด้านความปลอดภัยได้ทันทีด้วย Synk ซึ่งเป็นเครื่องมือที่ช่วยให้มองเห็นความปลอดภัยของอิมเมจ Docker และในแง่ของความยืดหยุ่น Docker ทำงานได้กับระบบปฏิบัติการและแอพพลิเคชั่นที่ใช้ระบบปฏิบัติการ Unix และ Windows ส่วนใหญ่ ความยืดหยุ่นนี้หมายความว่าแอปหรือบริการที่เชื่อมต่อหรือบรรจุในคอนเทนเนอร์จะทำงานโดยไม่คำนึงถึงระบบปฏิบัติการ

ใช้งานง่ายด้วย Docker และ Redis add-on กับ DevKinsta ซึ่งจะหมุนไซต์ WordPress ที่เทียบท่าแล้วในเครื่องเมื่อคุณเริ่มใช้งาน ลองใช้ DevKinsta และโปรแกรมเสริม Redis เพื่อรับพลังของ Redis ใน Docker วันนี้