Redis
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> Redis

Memcached có phải là một con khủng long so với Redis?

Tùy thuộc vào những gì bạn cần, nói chung tôi nghĩ rằng:

  • Bạn không nên quan tâm quá nhiều đến các buổi biểu diễn. Redis nhanh hơn trên mỗi lõi với các giá trị nhỏ, nhưng memcached có thể sử dụng nhiều lõi với một cổng TCP và tệp thực thi duy nhất mà không cần sự trợ giúp từ máy khách. Ngoài ra memcached còn nhanh hơn với các giá trị lớn theo thứ tự 100k. Redis gần đây đã cải thiện rất nhiều về giá trị lớn (nhánh không ổn định) nhưng memcached vẫn nhanh hơn trong trường hợp sử dụng này. Vấn đề ở đây là:cái này hay cái kia sẽ không trở thành nút thắt cổ chai của bạn đối với truy vấn mỗi giây mà họ có thể phân phối.
  • Bạn nên quan tâm đến việc sử dụng bộ nhớ. Đối với các cặp khóa-giá trị đơn giản, memcached sẽ tiết kiệm bộ nhớ hơn. Nếu bạn sử dụng hàm băm của Redis, Redis sẽ tiết kiệm bộ nhớ hơn. Tùy thuộc vào trường hợp sử dụng.
  • Bạn nên quan tâm đến tính bền bỉ và nhân rộng, hai tính năng chỉ có trong Redis. Ngay cả khi mục tiêu của bạn là tạo bộ nhớ đệm, điều này sẽ giúp ích cho việc sau khi nâng cấp hoặc khởi động lại, dữ liệu của bạn vẫn ở đó.
  • Bạn nên quan tâm đến loại hoạt động bạn cần. Trong Redis có rất nhiều thao tác phức tạp, thậm chí chỉ cần xem xét trường hợp sử dụng bộ nhớ đệm, bạn thường có thể làm được nhiều việc hơn trong một thao tác duy nhất mà không yêu cầu dữ liệu phải được xử lý phía máy khách (đôi khi cần nhiều I / O). Các thao tác này thường nhanh như GET và SET đơn giản. Vì vậy, nếu bạn không chỉ cần GET / SET mà còn những thứ phức tạp hơn, Redis có thể giúp ích rất nhiều (hãy nghĩ đến bộ nhớ đệm dòng thời gian).

Không có trường hợp sử dụng thì thật khó để chọn ngay bây giờ, nhưng tôi nghĩ rằng đối với nhiều thứ, Redis có ý nghĩa vì ngay cả khi bạn không muốn sử dụng nó như một DB, có nhiều khả năng hơn, bạn có thể giải quyết nhiều vấn đề hơn, không chỉ vào bộ nhớ đệm mà còn cả nhắn tin, xếp hạng, v.v.

P.s. tất nhiên, tôi có thể có thành kiến ​​vì tôi là nhà phát triển chính của dự án Redis.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MurmurHash - nó là gì?

  2. Tôi nên sử dụng Booksleeve với protobuf-net như thế nào?

  3. SignalR không thể kết nối với Azure Redis trên SSL

  4. đặt khóa hết hạn vào thời điểm cụ thể khi sử dụng Spring caching với Redis

  5. Làm thế nào để lưu trữ mảng các đối tượng trong Redis?