Saya telah bekerja sedikit dengan memcached minggu-minggu terakhir dan baru tahu tentang Redis. Ketika saya membaca bagian dari readme mereka ini, tiba-tiba saya merasakan perasaan hangat dan nyaman di perut saya:
Redis dapat digunakan sebagai memcached pada steroid karena secepat memcached tetapi dengan sejumlah fitur lebih. Seperti memcached, Redis juga mendukung pengaturan timeout ke tombol sehingga kunci ini akan dihapus secara otomatis ketika sejumlah waktu berlalu.
Ini kedengarannya luar biasa. Saya juga menemukan halaman ini dengan tolok ukur: http://www.ruturaj.net/redis-memcached-tokyo-tyrant-mysql-comparison
Jadi, jujur - Apakah memcache benar-benar dinousaur tua yang merupakan pilihan yang buruk dari perspektif kinerja bila dibandingkan dengan pendatang baru ini bernama Redis?
Saya belum pernah mendengar banyak tentang Redis sebelumnya, sehingga pendekatan untuk pertanyaan saya!
sumber
Jawaban:
Memcache masih merupakan alat yang luar biasa dan SANGAT andal.
alih-alih melihat masalah ini dari perspektif menurunkan siapa yang lebih cepat pada kisaran <100 ms, lihat kinerja per "kelas" perangkat lunak.
sumber
Tergantung pada apa yang Anda butuhkan, secara umum saya berpikir bahwa:
Tanpa use case sulit untuk memilih sekarang, tapi 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, bukan hanya caching tetapi bahkan olahpesan, peringkat, dan sebagainya.
Tentu saja saya bisa menjadi bias karena saya adalah pengembang utama proyek Redis.
sumber
Redis
memiliki fungsionalitas yang jauh lebih banyak;Redis
juga jauh lebih mudah. Tidak diperlukan dependensi;Redis
juga lebih baik;memcached
sedikit lebih cepat daripadaRedis
. Sama sekali tidak menyentuh disk;Redis
produk yang lebih baik daripadamemcached
.sumber
Apa yang dilakukan memcached yang tidak dilakukan Redis adalah penggusuran nilai yang paling baru digunakan dari cache. Dengan memcached, Anda dapat dengan aman mengatur nilai sebanyak yang Anda suka, dan ketika mereka meluap memori, yang belum Anda gunakan baru-baru ini akan dihapus. Dengan Redis, Anda hanya dapat memperkirakan ini, dengan mengatur batas waktu untuk semuanya; ketika perlu mengosongkan memori, itu akan melihat tiga kunci acak dan menghapus satu yang paling dekat dengan kedaluwarsa.
Itulah perbedaan utama, jika Anda hanya menggunakannya sebagai cache.
sumber
Anda mungkin juga ingin melihat Membase.
http://www.northscale.com/products/membase_server.html
Saya belum menggunakannya, tetapi tampaknya mirip dengan Redis dalam hal ini adalah toko KV memori-sentris dengan ketekunan. Perbedaan utama dari apa yang dapat saya lihat adalah:
Redis memiliki tier tunggal data offload to disk (VM) berdasarkan algoritma hybrid yang mempertimbangkan LRU dan ukuran objek.
Membase menggunakan protokol kawat memcached - berguna sebagai jalur peningkatan untuk aplikasi yang ada
Pilihannya mungkin tergantung pada sejauh mana aplikasi Anda dapat memanfaatkan fungsionalitas manipulasi data tambahan di Redis.
sumber
Hazelcast mendukung protokol memcached secara asli
https://web.archive.org/web/20140601010929/http://hazelcast.org/docs/latest/manual/html-single/hazelcast-documentation.html
dan dengan demikian merupakan alternatif modern untuk memcached. Anda harus mencoba semua solusi untuk melihat mana yang paling cocok untuk Anda.
sumber