2010-11-05 189 views
26

Redis Vs Hazelcast Nếu ứng dụng của tôi:redis vs Hazelcast

  • Có rất nhiều yêu cầu http (6.000 mỗi phút, tôi thu thập nhấp chuột thông tin) mà cần phải được lưu
  • Có rất nhiều yêu cầu http truy vấn đó dữ liệu đã lưu trước đó.

Câu hỏi của tôi là - Tôi muốn chọn lưu trữ và truy vấn dữ liệu - cách nào để đọc và ghi nhanh hơn? - cái nào đáng tin cậy hơn? - Có thể Cassandra là một lựa chọn tốt hơn?

trả lời bất kỳ câu hỏi giúp

+3

Bạn nên thử mô tả vấn đề của mình tốt hơn. Dữ liệu bạn muốn đặt bên trong và đặc biệt là cách bạn cần truy vấn dữ liệu của mình. – antirez

+1

Tôi dự định đặt khoảng 30 khóa-giá trị. Dữ liệu trông giống như. userid-Set. thiết lập có thuộc tính cho người dùng đó, khoảng 10. Nó sẽ được cập nhật liên tục và nó sẽ nhận được truy vấn liên tục. Tôi thích redis vì nó biết Set là gì và nó là một hoạt động, nhưng nó không thể mở rộng. – Federico

Trả lời

0

Cả Redis và Hazelcast là cơ sở dữ liệu bộ nhớ dựa, vì vậy về mặt lý thuyết, họ nên cung cấp tốc độ và hiệu suất tương tự. Nhìn qua các tài liệu cho Hazelcast, bạn sẽ nhận được sự hỗ trợ tốt hơn với Redis vì số lượng lớn các Thư viện để giao tiếp với cơ sở dữ liệu. Hazelcast trông giống như họ chỉ có libs java, Redis có một cho mọi ngôn ngữ.

Đáp:

  1. Bạn sẽ phải kiểm tra điều này trên của riêng bạn, như xa như tôi có thể nói so sánh khác nhau cho thấy Redis như nhanh hơn one of them is here, nhưng tôi sẽ không nói những tiêu chuẩn là 100%

  2. Chúng phải đáng tin cậy, nhưng tôi không thể xác minh cho Hazelcast.

  3. Có lẽ ...

tôi sẽ đi với Redis, bởi vì tôi thấy nó là có thể sử dụng nhất và nó có tài liệu tuyệt vời.

+10

Điểm chuẩn đó so sánh Redis với memcached, chứ không phải Hazelcast. – nilskp

18

Chúng tôi đã chuyển từ redis sang hazelcast cho các nhu cầu bộ nhớ đệm của chúng tôi.

  • Protostuff + Hazelcast là nhanh hơn nhiều đối với chúng ta hơn
  • Protostuff + Jedis (gộp) + Redis

Chúng tôi sử dụng protostuff serialize đậu đó là đắt tiền để tạo. Cơ chế serialization chuẩn của Hazelcasts chậm hơn nhiều. Môi trường của chúng tôi là Glassfish 3.1.

Hazelcast trông giống như họ chỉ có libs java, Redis có một cho mọi ngôn ngữ.

True. Hazelcast chỉ cung cấp một API REST và thực hiện giao thức memcached.

10

Có một lib rất tiện dụng - Redisson.Nó cung cấp phân phối Java đối tượng và dịch vụ (BitSet, BloomFilter, Set, SortedSet, Map, ConcurrentMap, List, Queue, Deque, BlockingQueue, BlockingDeque, ReadWriteLock, Semaphore, Lock, AtomicLong, CountDownLatch, Publish/Subscribe, RemoteService, ExecutorService, LiveObjectService, ScheduledExecutorService) trên máy chủ Redis!

Nó hỗ trợ các chế độ kết nối cụm, sentinel, master/slave và đơn.

hoàn hảo làm việc trong đám mây và hỗ trợ AWS Elasticache và Azure Redis Mây

Dưới đây là một số câu chuyện thành công từ các khách hàng Redisson:

Moving from Hazelcast to Redis
Distributed Locking with Redis (Migration from Hazelcast)

9

Tính đến năm 2017, cả hai Redis và Hazelcast phục vụ khả năng lưu trữ \ key có giá trị \ có khả năng mở rộng cao. Với thời gian phản hồi rất nhanh < 10ms.

Redis là duy nhất ở chỗ nó hỗ trợ các cấu trúc dữ liệu khác như bộ sored, bộ băm và cơ chế pub \ sub. Nó cũng có thể mở rộng thông qua kịch bản lệnh lua. Nó có lẽ là phổ biến nhất và được sử dụng rộng rãi trong hai sản phẩm. Đặc biệt bên ngoài hệ sinh thái Java.

Hazelcast là duy nhất ở chỗ nó có thể được nhúng vào trong một quá trình lưu trữ Java, làm cho nó tuyệt vời để xây dựng các dịch vụ micros state mà không có sự phụ thuộc cơ sở dữ liệu bên ngoài. Nó cũng có một số khác biệt nhỏ khác, như khả năng nhận lại cuộc gọi từ một lần hết hạn. Trong một nghĩa nào đó, nó ít tổng thể hơn nhưng một vài điều nó làm, nó làm chúng tốt hơn. Đặc biệt là nếu bạn đang sử dụng Java. Nhìn chung, đây là những giải pháp tương tự được thiết kế cho các trường hợp sử dụng tương tự như lưu dữ liệu bên ngoài, tạo bảng nối tiếp hoặc trạng thái bộ nhớ chia sẻ cho một dịch vụ nhỏ, hoặc thậm chí có thể lưu trữ (một lượng nhỏ dữ liệu kinh doanh không quan hệ) với một mức độ nào đó Độ bền.

+0

Không đồng ý với ý kiến ​​của bạn. Redis quy mô cấu hình không mất nhiều thời gian phải mất một giờ hoặc lâu hơn. Bạn không cần Twemproxy quá, nếu bạn sử dụng Redisson, ví dụ. Nó giải quyết mọi vấn đề cân bằng kết nối cho bạn. –

+2

Tôi đồng ý rằng với RC của Redis cluster và các dịch vụ quản lý SaaS mới cho Redis, cảnh quan đã thay đổi về tỷ lệ Redis thành nhiều trường hợp cân bằng tải theo chiều ngang kể từ khi tôi viết bài này. – Eric

+0

@Eric Sau đó, vui lòng chỉnh sửa hoặc xóa câu trả lời của bạn. –

1

Để quyết định cái nào là tốt, có vấn đề về việc sử dụng chuỗi khách hàng.

Theo benchmark Hazelcast này tốt hơn Redis nếu bạn sử dụng nhiều chuỗi hơn. Có lẽ đây là một điểm chuẩn công ty không công bằng nhưng cho thấy một cái gì đó về luồng.

+0

Tôi rất biết ơn vì bất kỳ phản hồi hoặc phê bình nào mà tôi có thể học hỏi hoặc sử dụng để giúp tôi cải thiện câu trả lời của mình. Vì vậy, xin vui lòng để lại một bình luận trong khi downvoting một câu trả lời ... – Fsr

+0

Tôi sẽ không tin tưởng điểm chuẩn như vậy. Đầu tiên, nó không cung cấp bất kỳ thông tin nào về Redis cluster, phần lớn như các nút master/slave mà nó bao gồm. Ví dụ, Redis cluster ghi quy mô hoạt động phụ thuộc vào các nút chính số tiền tương tự cho các hoạt động đọc. Dưới đây là một điểm chuẩn khác cho thấy 1,2 triệu op/giây cho Redis cluster http://highscalability.com/blog/2014/8/27/the-12m-opssec-redis-cloud-cluster-single-server-unbenchmark.html –

+1

Tôi nghĩ bạn hầu như bị giảm giá vì mọi người đang tìm kiếm đánh giá độc lập và trung lập về các sản phẩm khác nhau và bạn chỉ cần liên kết blog của Hazelcast, ngay cả khi họ cố gắng trung lập, vẫn có thể bị thiên vị, vì họ sẽ tạo thử nghiệm phù hợp với sản phẩm của họ. Ngoài ra, stackoverflow thích bạn trích dẫn các thông tin liên quan cũng như cung cấp một liên kết, trong trường hợp liên kết ngừng hoạt động. – MichaelRom