Redis
 sql >> Baza danych >  >> NoSQL >> Redis

Jak zaimplementować tę pojedynczą rozproszoną kolejkę współbieżności na dowolnej platformie MQ?

Możesz to osiągnąć za pomocą list Redis z dodatkową kolejką „wysyłki”, którą wszyscy pracownicy BRPOP na ich pracę. Każde zadanie w kolejce wysyłania jest oznaczone oryginalnym identyfikatorem kolejki, a kiedy pracownik zakończy zadanie, przechodzi do tej oryginalnej kolejki i wykonuje RPOPLPUSH do kolejki wysyłkowej, aby następne zadanie było dostępne dla każdego innego pracownika. W związku z tym kolejka wysyłania będzie miała maksymalnie num_queues elementy.

Jedną rzeczą, z którą będziesz musiał się uporać, jest początkowa populacja kolejki wysyłania, gdy kolejka źródłowa jest pusta. Może to być po prostu sprawdzenie wykonane przez wydawcę względem flagi „pusta” dla każdej kolejki, która jest ustawiona początkowo, a także ustawiona przez pracownika, gdy w oryginalnej kolejce nie ma nic do wysłania. Jeśli ta flaga jest ustawiona, wydawca może po prostu LPUSH pierwsze zadanie bezpośrednio do kolejki wysyłkowej.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Wydajny sposób mapowania danych z Redis

  2. Redis — Jak skonfigurować niestandardowe konwersje

  3. Node.js Kue, jak ponownie uruchomić nieudane zadania

  4. Redis aktywna-aktywna replikacja

  5. Wsparcie Redis na indeksie wtórnym