Bagaimana dan Mengapa Menjalankan Redis di Docker
Diterbitkan: 2023-05-02Redis adalah database dalam memori yang sangat tersedia. Penyimpanan data nilai kunci yang persisten disk-nya ideal untuk beberapa penggunaan dengan ketersediaan tinggi.
Di sisi lain, Docker adalah alat untuk mengemas aplikasi dan layanan, mengisolasi lingkungannya dan memungkinkannya berjalan secara terpisah. Anda dapat menggunakan Docker sebagai pengelola paket untuk aplikasi dan layanan dengan semua dependensi, konfigurasi, skrip, dll. yang diperlukan. Skrip yang disebut Dockerfile ditempatkan di dalam wadah Docker dan memungkinkan Anda menerapkan wadah sebagai satu kesatuan.
Artikel ini mengajarkan Anda cara menggunakan kedua teknologi sumber terbuka ini secara efektif. Ini juga menyentuh mengapa menjalankan klaster Redis di dalam wadah Docker sangat penting dan keuntungan serta manfaat melakukannya dibandingkan dengan menjalankan klaster Redis di mesin virtual atau server bare metal.
Berbagai Penggunaan Redis
Redis memiliki beberapa keunggulan. Penggunaannya yang paling populer meliputi:
- Cache basis data nilai kunci terdistribusi
- Pialang pesan
- Server caching objek yang persisten
Selain itu, Redis dapat mendukung banyak tipe dan struktur data, membuatnya cocok untuk digunakan sebagai lapisan database primer dan sekunder untuk aplikasi. Ini juga mendukung daftar, aliran, hash, set, dll.
Namun, Anda dapat mendorong manfaat Redis lebih jauh dengan mengemasnya.
Redis Paling Baik Di Dalam Wadah
Redis adalah salah satu gambar Docker paling populer di registri Docker, dengan lebih dari satu miliar unduhan. Alasan untuk mengemas aplikasi Redis adalah untuk mendapatkan manfaat Docker dan dukungan komunitas untuk kasus penggunaan Redis yang paling umum.
Gambar Redis Docker memiliki komunitas sumber terbuka yang membuat dan memelihara dokumentasi yang jelas. Dan yang terpenting, Docker sangat andal dan memungkinkan penggunaan yang mudah dan fleksibilitas.
Kemudahan penggunaan
Docker mengisolasi lingkungan untuk aplikasi dan layanan yang berjalan di dalam kontainer. Isolasi berarti Anda dapat mengemas, membuat, dan mengirim gambar Redis yang bekerja terlepas dari sistem operasi host, yang membuat pengembangan dan menjalankan aplikasi Redis di dalam Docker menjadi mudah. Selain itu, Docker Desktop menyederhanakan pengaturan lingkungan pengembangan lokal yang konsisten, yang sangat berguna untuk tim besar.
Keamanan:
Anda dapat memindai kerentanan keamanan dengan Redis di dalam wadah. Docker menggunakan Snyk, sebuah alat yang memberikan visibilitas ke dalam keamanan citra Docker. Itu memindai wadah Docker dan memberikan detail dan perbaikan jika ada gambar yang rusak. Docker juga dapat menghasilkan software bill of material (SBOM) untuk memindai semua dependensi yang digunakan dalam membangun citra kontainer, meskipun masih dalam tahap percobaan.
Fleksibilitas
Docker tersedia untuk sebagian besar sistem dan aplikasi berbasis Unix dan Windows. Karena Anda menggunakan kontainer untuk mengisolasi perangkat lunak dari lingkungannya guna memastikannya berfungsi dengan semua sistem, aplikasi dan layanan Redis selalu berjalan terlepas dari infrastrukturnya.
Keandalan
Docker memungkinkan Anda menjalankan beban kerja terkontainer apa pun di lingkungan apa pun dengan andal. Redis dapat diandalkan di Docker karena container Docker secara berkala mengambil snapshot image container, memungkinkan Anda untuk kembali ke snapshot ini jika database rusak atau rusak. Anda juga dapat membuat volume Docker dengan memasang direktori yang berisi file database Redis di dalam wadah.
Volume Docker membantu menjaga wadah aman dari segala bentuk kehilangan data yang tidak disengaja. Namun, peringatannya adalah volume Docker tidak menyertakan snapshot gambar. Anda harus secara manual menyimpan atau mencadangkan data di file database Redis Anda secara berkala.
Cara Menggunakan Redis Dengan Docker
Untuk menempatkan toko Redis Anda di dalam wadah Docker, Anda harus memiliki Docker di lingkungan target. Petunjuk berikut menunjukkan cara menginstal Docker di Windows.
Anda dapat mengikuti panduan di situs web Docker untuk OS berbasis Unix atau Unix. Setelah instalasi dan konfigurasi, Anda dapat membuat jaringan di dalam wadah Docker Anda. Kemudian Anda dapat menginstal Redis dan membuat database. Terakhir, Anda dapat melakukan operasi pada database Redis Anda.
Pertama, instal Docker di sistem operasi Anda. Secara opsional, arahkan ke Docker Hub dan buat akun. Anda memerlukan akun untuk membuat dan menerbitkan gambar Anda.
Setelah membuat akun, masuk ke Docker Hub dan unduh Docker Desktop versi terbaru sistem operasi Anda.
Setelah prosedur instalasi, buka jendela terminal Anda untuk melihat apakah Docker Engine siap dijalankan dan masukkan perintah berikut:
docker --version
Kemudian ketik: docker-compose --version
.
Compose adalah alat untuk mendefinisikan dan menjalankan aplikasi Docker multi-kontainer menggunakan file YAML, yang Anda gunakan untuk mengonfigurasi layanan aplikasi.
Anda dapat menjalankan Dockerized Redis untuk memvalidasi bahwa Docker Engine aktif dan berjalan menggunakan kode di bawah ini. Contoh ini menjalankan image Redis dari Docker Hub dan menamakannya my-redis-container .
docker run --name my-redis-container -d redis
Karena Anda tidak memiliki image secara lokal, Docker menarik image Redis dari Docker Hub.
Sekarang, Anda dapat membuka Docker Desktop untuk mengonfirmasi bahwa ia menarik image Redis. Di Dasbor, klik Gambar di panel sisi kiri.
Sekarang, Anda dapat membuat jaringan. Perhatikan bahwa driver Docker menggunakan bridge atau overlay driver jaringan bawaan untuk membuat jaringan Docker. Anda juga dapat menginstal dan menggunakan driver jaringan pihak ketiga.
Perbedaannya adalah bahwa jaringan jembatan diisolasi pada satu instalasi Docker Engine, sementara jaringan overlay menjangkau beberapa host Docker, masing-masing menjalankan mesin.
Jenis:
docker network create -d bridge kinsta-demo-network
Jika Anda tidak menentukan driver apa pun secara default, Docker menggunakan driver bridge untuk membuat jaringan baru karena secara otomatis membuat driver bridge saat Anda menginstal Docker Engine. Namun, jika Anda menjalankan container Docker dengan perintah Docker run, ia tidak akan menggunakan jaringan ini.
Sekarang setelah Anda memiliki jaringan, menginstal Redis di dalam wadah Docker adalah langkah selanjutnya. Untuk melakukannya, ketik: docker pull redis
.
Untuk memverifikasi gambar Redis diinstal dengan benar, jalankan salah satu dari perintah berikut:
docker images
docker image ls
Selanjutnya, Anda membuat dan memulai wadah Redis. Untuk melakukannya, jalankan perintah berikut:
docker run -it –name dev_kinsta_redis_container -d redis
Sekarang verifikasi bahwa Redis berjalan di wadah. Untuk melakukannya, ketik: docker ps
.
Sekarang setelah Anda mengonfirmasi bahwa container Docker Anda sudah aktif dan berjalan, Anda dapat menambahkan container tersebut ke jaringan. Ketik: docker network connect
.
Dengan semuanya berfungsi seperti yang diharapkan, langkah selanjutnya adalah memverifikasi server Redis Anda yang berjalan di dalam Docker siap menerima koneksi. Untuk melakukannya, gunakan docker logs
.
Selanjutnya, Anda harus membuat database karena Anda memerlukan cara untuk terhubung ke wadah Redis untuk menjalankan perintah di server. Untuk melakukannya, ketik: docker exec -it bash
. Anda dapat menggunakan nama wadah dan ID wadah secara bergantian.
Di wadah, gunakan CLI untuk menjalankan perintah. Perhatikan bahwa Redis menginstal host Docker secara otomatis. Untuk menggunakan Redis-CLI, ketik: redis-cli
.
Ini menghubungkan Anda ke port default untuk Redis di host lokal. Ketik: ping
, dan responsnya harus pong
.
Selanjutnya, pilih database di dalam server Redis Anda dengan mengetikkan select
. Meskipun basis data default adalah 0
, pilih db 1
.
Selanjutnya, masukkan data ke dalam database. Gunakan perintah SET
Redis. Untuk melakukannya, ketik SET <key> <value>
.
Misalnya:
SET mykey "Hello"
Untuk mendapatkan kunci yang sama, ketik:
get myKey
Untuk mendapatkan nilai kunci, jalankan get
. Ini mengembalikan nilainya. Selanjutnya, pantau database Redis Anda dengan mengetik MONITOR
.
Terakhir, hentikan server Redis dengan keluar dari CLI. Ketik exit
dua kali untuk keluar dari CLI dan Redis.
Terakhir, hentikan wadah Redis agar tidak berjalan dengan mengetikkan docker stop
.
Redis Dengan DevKinsta
DevKinsta memungkinkan Anda menghubungkan situs WordPress ke database Redis. Dengan DevKinsta, add-on Redis berfungsi mulus sebagai cache objek untuk menyimpan data di beberapa pemuatan halaman. Ini berarti bahwa dengan menggunakan add-on Redis, Anda dapat menggunakan cache untuk menggunakan kembali objek alih-alih terus-menerus menanyakan database MySQL.
Setelah mengunduh dan menyiapkan DevKinsta, instal Docker Desktop sebagai dependensi, yang digunakannya untuk membuat file lingkungan lokal di dalam wadah. Dengan pengaturan ini, Anda dapat mengonfigurasi add-on Redis di Devkinsta.
Oleh karena itu, add-on Redis untuk DevKinsta dapat digunakan sebagai sumber sekunder, mengurangi beban pada database primer, meningkatkan waktu respons, dan membuat aplikasi bekerja lebih cepat.
Ini berarti aplikasi menangani lebih banyak beban dan penskalaan secara efisien. Lihat posting ini untuk menggunakan plugin Redis dengan situs web Anda.
Ringkasan
Ada banyak keuntungan menjalankan Redis di dalam container Docker. Ini menawarkan lingkungan kotak pasir untuk aplikasi Anda, jadi Anda tidak perlu lagi peduli dengan platform tempat Anda menerapkan aplikasi. Selain itu, Docker memungkinkan kemudahan penggunaan, fleksibilitas, dan keandalan yang tinggi.
Mengenai keamanan, Anda dapat memeriksa dan memindai kerentanan keamanan secara langsung dengan Synk, alat yang memberikan visibilitas ke dalam keamanan image Docker. Dan mengenai fleksibilitas, Docker berfungsi untuk sebagian besar sistem dan aplikasi operasi berbasis Unix dan Windows. Fleksibilitas ini berarti bahwa aplikasi atau layanan yang di-docker atau di-container selalu berjalan terlepas dari OS-nya.
Sangat mudah untuk menggunakan Docker dan add-on Redis dengan DevKinsta, yang menjalankan situs WordPress berbasis docker secara lokal saat Anda memulainya. Lihat add-on DevKinsta dan Redis untuk mendapatkan kekuatan Redis di Docker hari ini.