Avatar
0
monkey Enlightened
monkey Enlightened
Khác biệt giữa hazelcast và redis
Khác biệt giữa hazelcast và redis là gì?
  • Answer
hazelcast redis
Remain: 5
1 Answer
Avatar
monkey Enlightened
monkey Enlightened
Giống nhau:

  • Đều là các thư viện phục cho memory caching khá tốt
  • Đều có cả replicate và cluster
  • Có thể lựa chọn thằng nào cũng ok

Khác nhau:

  1. Redis:
  • Viết bằng C/C++, tuy nhiên phần client sdk hiện đã có sẵn cho tất cả các ngôn ngữ phổ biến, các thư viện này đến từ các cá nhân trong cộng đồng mã nguồn mở
  • Cung cấp dữ liệu dạng byte array, nên khi lập trình phải sử dụng các thư viện để chuyển đối sang dạng đối tượng
  • Dữ liệu từ RAM sẽ được ghi sẽ ổ cứng, điều này gây ra tình trạng duplicate dữ liệu ở nhiều nơi, dữ liệu sẽ có cả trong database và ổ cứng
  • Cấu hình cluster rồi sentinel cũng khá phức tạp
  • Hỗ trợ cả atomic long, atomic double, dữ liệu có thể lưu được ở dạng tree và hash table, có hỗ trợ transaction nhưng mình chưa bao giờ dùng vì nó không thể dùng nổi
  • Có cả tool admin miễn phí và trả tiền

  1. Hazelcast
  • Viết bằng java nên có phần nào đó gây cảm giác nặng nề, client hiện đã có sẵn cho các ngôn ngữ phổ biến và thường được chính hazelcast tạo ra
  • Cung cấp dữ liệu ở dạng đối tượng nên khi sử dụng đã tiện, nếu sử dụng java thì tương đối dễ dàng, nhưng sử dụng các ngôn ngữ khác ngoài java thì cũng phải viết tầng serialize/deserialize để chuyển byte array thành đối tượng
  • Dữ liệu từ RAM sẽ được ghi vào cơ sở dữ liệu mà bạn đang sử dụng thông qua cơ chế map store
  • Cấu hình cũng khá đơn giản, cung cấp nhiều giao thức kiểu multicast, tcp-ip, tuy nhiên chỗ cấu hình mapstore với cả seralizer/deserializer cũng khá oải vì dự án to thì nhiều đối tượng
  • Dữ liệu sẽ lưu ở dạng hash table, transaction khá tốt
  • Có tool do hazelcast cung cấp và phải trả phí

Quan điểm cá nhân: ngày trước mình dùng hazelcast cũng khá tiện, nhưng sau này mình đi wrap lại thư viện thì lại thấy redis đơn giản hơn rất nhiều, chỉ ghét nhất quả phải duplicate dữ liệu của redis. Nên giờ ai hỏi mình sẽ bảo dùng Redis. Tuy nhiên mình cũng đi phát triển thư viện memory cache riêng để khắc phục nhược điểm của cả 2 thư viện kia: https://github.com/youngmonkeys/calabash

  • 0
  • Reply