อย่างไรและทำไมต้องเรียกใช้ Redis ใน Docker
เผยแพร่แล้ว: 2023-05-02Redis เป็นฐานข้อมูลในหน่วยความจำที่มีความพร้อมใช้งานสูง ที่เก็บข้อมูลคีย์-ค่าที่คงอยู่ของดิสก์เหมาะอย่างยิ่งสำหรับการใช้งานที่มีความพร้อมใช้งานสูงหลายรายการ
ในทางกลับกัน Docker เป็นเครื่องมือสำหรับการบรรจุแอปพลิเคชันและบริการ แยกสภาพแวดล้อมและอนุญาตให้ทำงานแยกกัน คุณสามารถใช้ Docker เป็นตัวจัดการแพ็คเกจสำหรับแอปพลิเคชันและบริการที่มีการพึ่งพา การกำหนดค่า สคริปต์ ฯลฯ ที่จำเป็นทั้งหมด สคริปต์ที่เรียกว่า Dockerfile จะอยู่ในคอนเทนเนอร์ Docker และอนุญาตให้คุณปรับใช้คอนเทนเนอร์เป็นเอนทิตีเดียว
บทความนี้จะสอนวิธีการใช้เทคโนโลยีโอเพ่นซอร์สทั้งสองนี้อย่างมีประสิทธิภาพ นอกจากนี้ยังให้เหตุผลว่าเหตุใดการเรียกใช้คลัสเตอร์ Redis ภายในคอนเทนเนอร์ Docker จึงมีความสำคัญ และข้อดีและประโยชน์ของการทำเช่นนั้นเมื่อเปรียบเทียบกับการเรียกใช้คลัสเตอร์ Redis บนเครื่องเสมือนหรือเซิร์ฟเวอร์ Bare Metal
การใช้งานต่าง ๆ ของ Redis
Redis มีข้อดีหลายประการ การใช้งานที่ได้รับความนิยมสูงสุด ได้แก่ :
- แคชฐานข้อมูลคีย์-ค่าแบบกระจาย
- นายหน้าข้อความ
- เซิร์ฟเวอร์แคชวัตถุถาวร
นอกจากนี้ Redis ยังรองรับประเภทข้อมูลและโครงสร้างที่หลากหลาย ทำให้เหมาะสำหรับใช้เป็นทั้งชั้นฐานข้อมูลหลักและรองสำหรับแอปพลิเคชัน นอกจากนี้ยังสนับสนุนรายการ สตรีม แฮช ชุด ฯลฯ
อย่างไรก็ตาม คุณสามารถผลักดันประโยชน์ของ 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 Hub และดาวน์โหลด Docker Desktop เวอร์ชันล่าสุดของระบบปฏิบัติการของคุณ
หลังจากขั้นตอนการติดตั้ง ให้ไปที่หน้าต่างเทอร์มินัลเพื่อดูว่า Docker Engine พร้อมที่จะทำงานหรือไม่ และป้อนคำสั่งต่อไปนี้:
docker --version
จากนั้นพิมพ์: docker-compose --version
เขียนเป็นเครื่องมือสำหรับกำหนดและเรียกใช้แอปพลิเคชัน Docker หลายคอนเทนเนอร์โดยใช้ไฟล์ YAML ซึ่งคุณใช้เพื่อกำหนดค่าบริการแอปพลิเคชัน
คุณสามารถเรียกใช้ Dockerized Redis เพื่อตรวจสอบว่า Docker Engine เปิดใช้งานแล้วโดยใช้รหัสด้านล่าง ตัวอย่างนี้รันอิมเมจ Redis จาก Docker Hub และตั้งชื่อว่า my-redis-container
docker run --name my-redis-container -d redis
เนื่องจากคุณไม่มีรูปภาพในเครื่อง Docker จึงดึงรูปภาพ Redis จาก Docker Hub
ตอนนี้ คุณสามารถเปิด Docker Desktop เพื่อยืนยันว่าได้ดึงอิมเมจ Redis บนแดชบอร์ด ให้คลิก รูปภาพ บนแผงด้านซ้าย
ตอนนี้คุณสามารถสร้างเครือข่าย โปรดทราบว่าไดรเวอร์ Docker ใช้บริดจ์หรือไดรเวอร์เครือข่ายในตัวซ้อนทับเพื่อสร้างเครือข่าย Docker คุณยังสามารถติดตั้งและใช้ไดรเวอร์เครือข่ายของบริษัทอื่นได้
ข้อแตกต่างคือเครือข่ายบริดจ์ถูกแยกออกจากกันในการติดตั้ง Docker Engine เดียว ในขณะที่เครือข่ายโอเวอร์เลย์ขยายโฮสต์ Docker หลายโฮสต์ โดยแต่ละโฮสต์จะรันเอ็นจิ้น
พิมพ์:
docker network create -d bridge kinsta-demo-network
หากคุณไม่ได้ระบุไดรเวอร์ใดๆ ตามค่าเริ่มต้น Docker จะใช้ไดรเวอร์บริดจ์เพื่อสร้างเครือข่ายใหม่ เนื่องจากจะสร้างไดรเวอร์บริดจ์โดยอัตโนมัติเมื่อคุณติดตั้ง Docker Engine อย่างไรก็ตาม หากคุณเรียกใช้คอนเทนเนอร์ Docker ด้วยคำสั่งเรียกใช้ Docker ก็จะไม่ใช้เครือข่ายนี้
เมื่อคุณมีเครือข่ายแล้ว การติดตั้ง Redis ภายในคอนเทนเนอร์ Docker เป็นเรื่องถัดไป โดยพิมพ์: docker pull redis
ในการตรวจสอบว่าอิมเมจ Redis ได้รับการติดตั้งอย่างถูกต้อง ให้เรียกใช้หนึ่งในคำสั่งต่อไปนี้:
docker images
docker image ls
จากนั้น ให้คุณสร้างและเริ่มคอนเทนเนอร์ Redis โดยเรียกใช้คำสั่งต่อไปนี้:
docker run -it –name dev_kinsta_redis_container -d redis
ตรวจสอบว่า Redis ทำงานในคอนเทนเนอร์ โดยพิมพ์: docker ps
ตอนนี้คุณได้ยืนยันว่าคอนเทนเนอร์ Docker ของคุณเปิดใช้งานแล้ว คุณสามารถเพิ่มคอนเทนเนอร์ไปยังเครือข่ายได้ ประเภท: docker network connect
เมื่อทุกอย่างทำงานตามที่คาดไว้ ขั้นตอนต่อไปคือการตรวจสอบว่าเซิร์ฟเวอร์ Redis ของคุณที่ทำงานอยู่ภายใน Docker พร้อมที่จะยอมรับการเชื่อมต่อ ในการทำเช่นนั้น ให้ใช้ docker logs
ถัดไป คุณต้องสร้างฐานข้อมูลเนื่องจากคุณต้องการวิธีเชื่อมต่อกับคอนเทนเนอร์ Redis เพื่อเรียกใช้คำสั่งบนเซิร์ฟเวอร์ โดยพิมพ์: docker exec -it bash
คุณสามารถใช้ชื่อคอนเทนเนอร์และรหัสคอนเทนเนอร์แทนกันได้
ในคอนเทนเนอร์ ใช้ CLI เพื่อเรียกใช้คำสั่ง โปรดทราบว่า Redis จะติดตั้งโฮสต์ Docker โดยอัตโนมัติ หากต้องการใช้ Redis-CLI ให้พิมพ์: redis-cli
ซึ่งจะเชื่อมต่อคุณกับพอร์ตเริ่มต้นสำหรับ Redis บนโลคัลโฮสต์ ประเภท: ping
และการตอบสนองควรเป็น pong
จากนั้น เลือกฐานข้อมูลภายในเซิร์ฟเวอร์ Redis ของคุณโดยพิมพ์ select
แม้ว่าฐานข้อมูลดีฟอลต์คือ 0
ให้เลือก db 1
ถัดไป ใส่ข้อมูลลงในฐานข้อมูล ใช้คำสั่ง Redis SET
โดยพิมพ์ SET <key> <value>
ตัวอย่างเช่น:
SET mykey "Hello"
หากต้องการรับรหัสเดียวกัน ให้พิมพ์:
get myKey
หากต้องการรับค่าของคีย์ ให้เรียกใช้ get
สิ่งนี้ส่งคืนค่า จากนั้น ตรวจสอบฐานข้อมูล Redis ของคุณโดยพิมพ์ MONITOR
สุดท้าย หยุดเซิร์ฟเวอร์ Redis โดยออกจาก CLI พิมพ์ exit
สองครั้งเพื่อออกจาก CLI และ Redis
สุดท้าย หยุดไม่ให้คอนเทนเนอร์ Redis ทำงานโดยพิมพ์ docker stop
Redis กับ DevKinsta
DevKinsta ให้คุณเชื่อมต่อเว็บไซต์ WordPress กับฐานข้อมูล Redis ด้วย DevKinsta ส่วนเสริม Redis ทำงานได้อย่างราบรื่นเป็นแคชออบเจกต์เพื่อคงข้อมูลไว้ในการโหลดหลายๆ หน้า ซึ่งหมายความว่าเมื่อใช้โปรแกรมเสริม Redis คุณสามารถใช้แคชเพื่อนำออบเจ็กต์กลับมาใช้ใหม่แทนการสอบถามฐานข้อมูล MySQL อย่างต่อเนื่อง
หลังจากดาวน์โหลดและตั้งค่า DevKinsta แล้ว ให้ติดตั้ง Docker Desktop เป็นการอ้างอิง ซึ่งใช้สร้างไฟล์สภาพแวดล้อมในเครื่องภายในคอนเทนเนอร์ ด้วยการตั้งค่านี้ คุณสามารถกำหนดค่าส่วนเสริม Redis ใน Devkinsta
ดังนั้น Add-on ของ Redis สำหรับ DevKinsta จึงสามารถใช้เป็นแหล่งสำรอง ซึ่งช่วยลดภาระของฐานข้อมูลหลัก เพิ่มเวลาตอบสนอง และทำให้แอปพลิเคชันทำงานเร็วขึ้น
สิ่งนี้แปลเป็นแอปที่จัดการโหลดและปรับขนาดได้อย่างมีประสิทธิภาพมากขึ้น ลองอ่านโพสต์นี้เพื่อใช้ปลั๊กอิน Redis กับเว็บไซต์ของคุณ
สรุป
มีข้อดีมากมายในการเรียกใช้ Redis ภายในคอนเทนเนอร์ Docker มีสภาพแวดล้อมแบบแซนด์บ็อกซ์สำหรับแอปพลิเคชันของคุณ ดังนั้นคุณจึงไม่ต้องกังวลเกี่ยวกับแพลตฟอร์มที่คุณปรับใช้แอปพลิเคชันของคุณอีกต่อไป นอกจากนี้ Docker ยังช่วยให้ใช้งานง่าย ยืดหยุ่น และเชื่อถือได้สูง
ในเรื่องความปลอดภัย คุณสามารถตรวจสอบและสแกนหาช่องโหว่ด้านความปลอดภัยได้ทันทีด้วย Synk ซึ่งเป็นเครื่องมือที่ช่วยให้มองเห็นความปลอดภัยของอิมเมจ Docker และในแง่ของความยืดหยุ่น Docker ทำงานได้กับระบบปฏิบัติการและแอพพลิเคชั่นที่ใช้ระบบปฏิบัติการ Unix และ Windows ส่วนใหญ่ ความยืดหยุ่นนี้หมายความว่าแอปหรือบริการที่เชื่อมต่อหรือบรรจุในคอนเทนเนอร์จะทำงานโดยไม่คำนึงถึงระบบปฏิบัติการ
ใช้งานง่ายด้วย Docker และ Redis add-on กับ DevKinsta ซึ่งจะหมุนไซต์ WordPress ที่เทียบท่าแล้วในเครื่องเมื่อคุณเริ่มใช้งาน ลองใช้ DevKinsta และโปรแกรมเสริม Redis เพื่อรับพลังของ Redis ใน Docker วันนี้