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

Redis sao chép hoạt động tích cực

Redis v2.8.3 không hỗ trợ thiết lập đa tổng thể. Tuy nhiên, câu hỏi thực sự là tại sao bạn lại muốn thiết lập một cái? Nói cách khác, bạn đang cố gắng giải quyết thách thức / vấn đề nào?

Có vẻ như thách thức bạn đang cố gắng giải quyết là làm thế nào để giảm tải mạng (xem thêm bên dưới) bằng cách loại bỏ các lần đọc qua mạng. Vì Redis chưa phải là đa cái nên cách duy nhất để làm điều đó là thiết lập mỗi máy chủ ứng dụng với một cái chính một nô lệ (cho chủ khác) - tức là tổng cộng 4 phiên bản Redis (và gấp đôi RAM).

Tình huống đơn giản là khi mỗi ứng dụng chỉ cập nhật một tập con loại trừ lẫn nhau của các khóa của cơ sở dữ liệu. Trong trường hợp đó, kiểu thiết lập này thực sự có thể có lợi (ít nhất là trong ngắn hạn). Tuy nhiên, nếu cả hai ứng dụng đều có thể chạm vào tất cả các phím hoặc nếu thậm chí chỉ một phím được "chia sẻ" để ghi giữa các ứng dụng, thì bạn sẽ cần đưa logic khóa / giải quyết xung đột / v.v ... vào ứng dụng của mình để hợp nhất chính cục bộ và sự khác biệt về nô lệ (và điều đó có thể hơi quá mức cần thiết). Tuy nhiên, trong cả hai trường hợp, bạn sẽ kết thúc với quá nhiều (tức là hơn 1) lần chỉnh sửa, nghĩa là ít nhất phải nỗ lực quản trị viên nhiều hơn.

Cũng lưu ý rằng bằng cách tạo màu cho ứng dụng và cơ sở dữ liệu trên cùng một máy chủ, bạn đang tự đặt mình cho lỗi khả năng mở rộng gần như nhất định. Điều gì sẽ xảy ra khi bạn cần thêm tài nguyên tính toán cho ứng dụng của mình hoặc Redis? Làm thế nào bạn sẽ thêm một máy chủ ứng dụng khác vào hỗn hợp?

Điều này đưa tôi trở lại vấn đề thực tế mà bạn đang cố gắng giải quyết - tải mạng. Chính xác tại sao đó là một vấn đề? Các ứng dụng của bạn có quá nhiều thông lượng hay mạng quá mỏng khiến bạn sẵn sàng sử dụng với độ dài như vậy? Hoặc có thể độ trễ là vấn đề mà bạn muốn giải quyết? Thay vào đó, tôi khuyên bạn nên xem xét một thiết kế đã được kiểm chứng qua thời gian, cụ thể là tách Redis khỏi các ứng dụng và đưa nó vào tài nguyên của riêng nó. Đúng, mạng sẽ đập vào mặt bạn và bạn sẽ phải làm việc xung quanh / với nó (đó là những gì mọi người khác làm). Mặt khác, bạn sẽ linh hoạt hơn và kiểm soát việc thiết lập đơn giản hơn nhiều của mình và điều đó, trong cuốn sách của tôi, đó là một lợi ích to lớn.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Chuyển từ SQLite sang Redis

  2. Redis tcp-backlog

  3. Cách khắc phục CẢNH BÁO khi chạy hình ảnh redis:alpine Docker

  4. phpredis trên Windows 7 64bit xampp

  5. Redis trên Spark:Tác vụ không thể tuần tự hóa