Tergantung pada apa yang Anda butuhkan, secara umum menurut saya:
- Anda seharusnya tidak terlalu peduli dengan pertunjukan. Redis lebih cepat per inti dengan nilai kecil, tetapi memcached dapat menggunakan banyak inti dengan satu executable dan port TCP tanpa bantuan dari klien. Juga memcached lebih cepat dengan nilai besar di urutan 100k. Redis baru-baru ini banyak meningkatkan tentang nilai-nilai besar (cabang tidak stabil) tetapi masih memcached lebih cepat dalam kasus penggunaan ini. Intinya di sini adalah:satu atau yang lain kemungkinan besar tidak akan menjadi hambatan Anda untuk kueri per detik yang dapat mereka berikan.
- Anda harus memperhatikan penggunaan memori. Untuk pasangan kunci-nilai sederhana memcached lebih hemat memori. Jika Anda menggunakan hash Redis, Redis lebih hemat memori. Tergantung pada kasus penggunaan.
- Anda harus peduli dengan ketekunan dan replikasi, dua fitur hanya tersedia di Redis. Meskipun tujuan Anda adalah membuat cache, ada baiknya setelah peningkatan atau boot ulang, data Anda masih ada.
- Anda harus memperhatikan jenis operasi yang Anda butuhkan. Di Redis ada banyak operasi kompleks, bahkan hanya dengan mempertimbangkan kasus penggunaan caching, Anda sering dapat melakukan lebih banyak dalam satu operasi, tanpa memerlukan data untuk diproses di sisi klien (kadang-kadang diperlukan banyak I/O). Operasi ini seringkali secepat GET dan SET biasa. Jadi, jika Anda tidak hanya membutuhkan GET/SET tetapi hal-hal yang lebih kompleks, Redis dapat banyak membantu (pikirkan di cache timeline).
Tanpa use case sulit untuk memilih saat ini, tetapi saya pikir untuk banyak hal Redis masuk akal karena bahkan ketika Anda tidak ingin menggunakannya sebagai DB, menjadi jauh lebih mampu Anda dapat memecahkan lebih banyak masalah, tidak hanya menyimpan cache tetapi bahkan mengirim pesan, memberi peringkat, dan sebagainya.
P.s. tentu saja saya bisa menjadi bias karena saya adalah pengembang utama proyek Redis.