Redis vs Zookeeper

25

Rasanya konyol membandingkan kedua server ini karena mereka dimaksudkan untuk hal yang sangat berbeda. Tetapi jika Anda memikirkannya, mereka dapat melakukan banyak hal serupa: menyimpan data konfigurasi, penguncian terdistribusi, antrian, dll.

Saya punya contoh Redis yang saya gunakan untuk beberapa hal yang berkaitan dengan produksi, tetapi ingin melakukan sinkronisasi sederhana antara server (kebanyakan perubahan konfigurasi yang tidak memerlukan mendorong kode dan penguncian sederhana antara server). Apa yang diberikan Zookeeper kepada saya bahwa Redis tidak akan melakukannya?

Jason Baker
sumber
Redis bukan (khusus) untuk konfigurasi. Mereka produk yang sangat berbeda.
Rein Henrichs
4
Mengapa? Kami menggunakan PostgreSQL untuk konfigurasi. Apa yang membuat konfigurasi sangat berbeda dari logika bisnis?
Dmitry Negoda

Jawaban:

26

Kami menggunakan Redis dan Zookeeper di kantor, jadi ini dari pengalaman langsung

Redis cepat; sangat, sangat cepat. Ini juga langsung konsisten, sehingga bagus untuk set data yang bergerak cepat. Kelemahannya adalah, berjalan di satu server, jika gagal maka Anda kehilangan akses tulis sampai server lain mengambil tempat itu. Mengganti server adalah operasi manual kecuali jika Anda mengotomatiskannya sendiri. (Anda masih bisa mendapatkan akses baca ke data Anda jika Anda mengkonfigurasi instance slave).

Zookeeper juga segera menghadirkan konsistensi. Ini tidak setengah cepat, tetapi akan pulih secara otomatis (jika mungkin) dalam menghadapi kegagalan, jadi jika Anda memerlukan akses tulis terus menerus, bahkan ketika server Anda gagal pada Anda maka Anda akan ingin menggunakan Zookeeper.

Saran saya adalah, gunakan penjaga kebun binatang untuk koordinasi: melacak simpul mana yang aktif, pemilihan pemimpin di antara suatu kelompok, dll. Gunakan redis untuk kumpulan data yang membutuhkan penulisan cepat tetapi di mana pemadaman yang sesekali bukan bencana. Penghitung klik untuk halaman web misalnya.

dan_waterworth
sumber
Saat ini saya sedang mengerjakan sebuah proyek dan berpikir bahwa penjaga kebun binatang akan menjadi jalan yang harus ditempuh. Jika Anda memiliki informasi lebih lanjut yang dapat Anda bagikan di suatu tempat akan sangat menyenangkan. Kami berurusan dengan beberapa pertukaran iklan dan melacak sekitar 4 miliar + peristiwa sehari. Kami mencari untuk mendesain ulang server ujung depan kami dan sedang melihat zookeeper untuk menyimpan informasi tentang jumlah pelacakan, bobot minimum, dll. Saya bisa membuktikan kecepatan redis tetapi pengalaman saya tidak memiliki struktur hierarki yang ingin kami gunakan dengan zookeeper. Apakah sikap Anda berubah selama 3 tahun sejak 2012?
Chris Hinshaw
@ ChrisHinshaw Saya menghadapi masalah yang sama. Mempertimbangkan Redis dan Zookeeper untuk manajer sumber daya terdistribusi yang membutuhkan kunci dan kinerja terdistribusi. Apakah Anda punya umpan balik?
Rafael Saraiva
Saya sedang menyelesaikan penulisan ulang ini sekarang. Saya pergi dengan redis karena kecepatan. Ada beberapa masalah kinerja dengan zookeeper tapi saya tidak ingat masalahnya. Kami menyimpan data deret waktu berdasarkan metrik dan jumlah. Saya menggunakan skrip lua untuk memperbarui jumlah setiap periode waktu untuk membatasi jumlah panggilan. Contohnya adalah kami memiliki kunci hash untuk permintaan tawaran dalam bentuk br: 1: 2: 3: 4 di mana angka-angka tersebut mewakili hierarki metrik: agensi: pengiklan: kampanye: iklan. Dalam hash nilainya adalah tahun: bulan: hari: jam: menit. Dalam skrip lua saya, saya akan memperbarui hitungan untuk masing
Chris Hinshaw
irisan waktu. Jadi skrip saya membagi y: m: d: h dengan titik dua dan memperbarui total untuk setiap irisan. Dengan cara ini saya dapat menggunakan hscan atau mengambil daftar kunci untuk kutu waktu. Hal terpenting dalam redis adalah membuat model hirarki untuk kunci. Pada suatu saat di masa depan saya ingin memindahkan semua ini untuk memicu rdd's dengan toko cassandra. Jika saya punya waktu, saya akan menerapkan percikan streaming ke benchmark itu. Saya pikir itu akan setara dengan redis dan memberikan fleksibilitas melakukan analitik.
Chris Hinshaw