Red Hat Enterprise Linux 10 sudah menjadikan Podman sebagai container engine bawaan, sehingga menjalankan Redis melalui Podman adalah solusi yang sederhana, mudah diperbarui, dan sesuai dengan ekosistem Red Hat.
Di RHEL 10, menginstal Redis melalui Podman lebih direkomendasikan daripada mengompilasinya dari source. Alasannya bukan hanya karena lebih mudah, tetapi juga karena pendekatan ini lebih sesuai dengan arah pengembangan ekosistem Red Hat.
Sejalan dengan ekosistem RHEL 10
Pada RHEL 10, Red Hat semakin mendorong penggunaan aplikasi dalam bentuk container. Banyak aplikasi server yang dahulu tersedia sebagai paket RPM kini lebih umum dijalankan menggunakan Podman.
Beberapa alasannya:
- Podman merupakan container engine bawaan RHEL.
- Terintegrasi dengan SELinux dan systemd.
- Tidak memerlukan daemon seperti Docker (daemonless).
- Mendukung rootless container jika diperlukan.
Dengan kata lain, menjalankan Redis di Podman mengikuti praktik yang memang didukung oleh Red Hat.
Apa itu Redis?
Redis (Remote Dictionary Server) adalah database NoSQL in-memory yang menyimpan data di dalam RAM sehingga mampu memberikan performa baca dan tulis yang sangat cepat. Redis sering digunakan sebagai cache, message broker, session storage, dan penyimpanan data sementara pada aplikasi web modern.
Beberapa karakteristik utama Redis antara lain:
- Performa tinggi karena data disimpan di memori (RAM), dengan latensi yang sangat rendah.
- Mendukung berbagai tipe data, seperti String, Hash, List, Set, Sorted Set, Bitmap, HyperLogLog, Stream, dan Geospatial.
- Persistensi data bersifat opsional, sehingga data dapat disimpan ke disk menggunakan mekanisme RDB (snapshot) atau AOF (Append Only File) agar tetap tersedia setelah server direstart.
- Replikasi dan High Availability, mendukung master-replica serta Redis Sentinel dan Redis Cluster untuk meningkatkan ketersediaan dan skalabilitas.
- Ringan dan mudah diintegrasikan dengan berbagai bahasa pemrograman seperti PHP, Python, Node.js, Java, Go, dan lainnya.
Dalam implementasi WordPress, Redis paling sering digunakan sebagai Object Cache. Dengan menyimpan hasil query database di memori, WordPress tidak perlu melakukan query yang sama berulang kali ke MariaDB/MySQL. Hal ini dapat mengurangi beban database, mempercepat waktu muat halaman, dan meningkatkan kemampuan server menangani lebih banyak pengunjung secara bersamaan.
Singkatnya, Redis merupakan solusi penyimpanan data berkecepatan tinggi yang sangat efektif untuk meningkatkan performa aplikasi, terutama pada website dengan trafik tinggi atau aplikasi yang membutuhkan akses data secara real-time.
Nah, berikut ini panduan instalasi Redis menggunakan Podman di Red Hat Enterprise Linux 10.2 (Coughlan)
PREREQUISITES:
- AWS EC2 Instances dengan Images RHEL 10
- Hak Akses Root Penuh (sudo privileges)
- Familiar dengan Command-Line Linux, terutama DNF 5
1. Pastikan Podman sudah terpasang
* Cek versi Podman:
podman --version
* Jika belum terinstal:
dnf install podman -y
2. Download image Redis
* Tarik image Redis terbaru dari Docker Hub:
podman pull docker.io/library/redis:latest
* Atau gunakan versi tertentu, misalnya:
podman pull docker.io/library/redis:8.2
* Lihat image yang telah diunduh:
podman images
* Output:
REPOSITORY TAG IMAGE ID CREATED SIZE docker.io/library/redis latest da3958f512ee 8 days ago 145 MB
3. Buat direktori untuk data Redis
* Agar data tetap tersimpan meskipun container dihapus:
mkdir -p /opt/redis/data
* Jika ingin menggunakan konfigurasi sendiri:
mkdir -p /opt/redis/conf
4. Jalankan Redis
* Cara sederhana
podman run -d \
--name redis \
--restart=always \
-p 127.0.0.1:6379:6379 \
-v /opt/redis/data:/data:Z \
docker.io/library/redis:latest \
redis-server \
--bind 0.0.0.0 \
--appendonly yes \
--protected-mode yes \
--requirepass PasswordRedis123 \
--save 60 1000 \
--maxmemory 512mb \
--maxmemory-policy allkeys-lru \
--maxmemory-samples 15 \
--tcp-keepalive 300 \
--timeout 0 \
--loglevel notice
* Penjelasan:
-d → berjalan di background.
–restart=always → otomatis berjalan kembali setelah reboot (dengan systemd, lihat langkah 7).
-p 6379:6379 → membuka port Redis.
-v /opt/redis/data:/data:Z → menyimpan data secara persisten dan memberi label SELinux yang benar.
–bind 0.0.0.0 → Redis mendengarkan semua interface jaringan di dalam container. Diperlukan agar Podman dapat meneruskan koneksi ke Redis.
–appendonly yes → mengaktifkan AOF (Append Only File) untuk persistensi data.
–protected-mode yes → Mengaktifkan mode perlindungan Redis.
–requirepass PasswordRedis123 → Mengharuskan setiap client melakukan autentikasi sebelum menggunakan Redis.
–save 60 1000 → Snapshot Otomatis
–maxmemory 512mb → Redis hanya boleh menggunakan RAM maksimal 512 MB
–maxmemory-policy allkeys-lru → Kebijakan Saat Memori Penuh. Ketika Redis mencapai batas memori (maxmemory), Redis harus memutuskan key mana yang akan dihapus agar ada ruang untuk data baru.
–maxmemory-samples 15 → Meningkatkan Akurasi Algoritma LRU
–tcp-keepalive 300 → Mengatur interval TCP Keepalive dalam satuan detik.
–timeout 0 → Mengatur waktu tunggu untuk koneksi client yang tidak aktif.
–loglevel notice → Mengatur tingkat detail log Redis.
Jika ingin menghapus container Redis cukup jalankan:
podman rm -f redis
5. Cek Status Container
podman ps
* Lihat log:
podman logs redis
6. Test Redis
* Masuk ke container Redis:
podman exec -it redis redis-cli -a PasswordRedis123
* Kemudian:
PING
* Hasilnya harus:
PONG
* Atau langsung ketikan perintah:
podman exec -it redis redis-cli -a PasswordRedis123 ping
7. Install Redis Object Cache Plugin via WordPress Dashboard

8. Konfigurasi Optimal Redis Object Cache Plugin (WordPress/WooCommerce)
Tambahkan baris berikut ini tepat sebelum /* That’s all, stop editing! Happy publishing. */
nano wp-config.php
/** Enable Object Cache drop-in */
define( 'WP_CACHE', true );
/** Redis connection */
define( 'WP_REDIS_HOST', '127.0.0.1' );
define( 'WP_REDIS_PORT', 6379 );
define('WP_REDIS_PASSWORD', 'PasswordRedis123');
/** Use a dedicated DB & unique prefix for this site */
define( 'WP_REDIS_DATABASE', 1 ); // 0–15, pastikan unik per site
define( 'WP_REDIS_PREFIX', 'example.com:' ); // gunakan colon di akhir untuk keterbacaan
/** Timeouts (lokal Redis biasanya cepat, tapi jangan terlalu ketat) */
define( 'WP_REDIS_TIMEOUT', 1.0 ); // detik; 0.5–1.0 aman untuk lokal
define( 'WP_REDIS_READ_TIMEOUT', 1.0 ); // detik
/** Safety: bypass cache gracefully jika Redis bermasalah (tanpa merusak situs) */
define( 'WP_REDIS_GRACEFUL', true );
/** TTL maksimum untuk semua kunci (membatasi kemungkinan stale yang panjang) */
define( 'WP_REDIS_MAXTTL', 24 * 3600 ); // 24 jam
/**
* VERY IMPORTANT — Exclude volatile groups
* Hindari cache untuk data user/sesi yang memicu masalah login/reset password.
* Catatan: nama grup ini mengikuti core WordPress (users, userlogins, usermeta)
* dan variasinya yang sering dipakai plugin.
*/
define( 'WP_REDIS_IGNORED_GROUPS', [
'users',
'userlogins',
'usermeta', // alias user_meta (beberapa plugin pakai nama berbeda)
'user_meta',
// WooCommerce & sesi/nonce yang sering berubah:
'wc_session_id',
'wc_session_expires',
'woocommerce',
'woocommerce_cache',
'wc_cart', // bila ada plugin yang cache cart ke object cache
] );
define( 'WP_MEMORY_LIMIT', '512M' );
define( 'WP_MAX_MEMORY_LIMIT', '1024M' ); // untuk area admin
Catatan: untuk environment production, pastikan menggunakan password Redis yang kuat dan jangan gunakan PasswordRedis123.
Membuka Firewall (opsional)
* Jika Redis akan diakses dari server lain:
firewall-cmd --permanent --add-port=6379/tcp firewall-cmd --reload
Jika Redis hanya digunakan oleh aplikasi di server yang sama (misalnya WordPress atau Laravel), sebaiknya tidak perlu membuka port di firewall.

Jika WordPress juga berjalan di dalam container Podman, sebaiknya buat pod atau network khusus agar kedua container dapat saling berkomunikasi tanpa mengekspos Redis ke jaringan publik. Ini merupakan pendekatan yang lebih aman dan lebih sesuai dengan praktik terbaik Podman.































