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

Làm cách nào để triển khai hàng đợi phân tán đồng thời duy nhất này trong bất kỳ nền tảng MQ nào?

Bạn có thể đạt được điều này bằng cách sử dụng danh sách Redis với hàng đợi "điều phối" bổ sung mà tất cả nhân viên BRPOP cho công việc của họ. Mỗi công việc trong hàng đợi điều phối được gắn thẻ với ID hàng ban đầu và khi nhân viên đã hoàn thành công việc, nó sẽ chuyển đến hàng đợi ban đầu này và thực hiện RPOPLPUSH vào hàng đợi điều phối để thực hiện công việc tiếp theo cho bất kỳ công nhân nào khác. Do đó, hàng đợi gửi sẽ có tối đa là num_queues các phần tử.

Một điều bạn sẽ phải xử lý là dân số ban đầu của hàng đợi điều phối khi hàng đợi nguồn trống. Đây chỉ có thể là một kiểm tra do nhà xuất bản thực hiện đối với cờ "trống" cho mỗi hàng đợi được đặt ban đầu và cũng được đặt bởi nhân viên khi không còn gì trong hàng đợi ban đầu để gửi. Nếu cờ này được đặt, nhà xuất bản chỉ có thể LPUSH công việc đầu tiên trực tiếp vào hàng đợi gửi.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Khóa nguyên tử được phân phối trong trình điều khiển bộ nhớ đệm là gì?

  2. Tập lệnh Lua cho Redis tính tổng các giá trị của các khóa

  3. Truy cập một biến trong một chuỗi rails

  4. Kết nối với RedisToGo thông qua Node.JS

  5. Redis thiết lập TTL trên hSet Keys