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

Przecięcie Mongodb z zakresem czasu

możesz użyć zestawów redis dla tego przypadku użycia:

Jeśli przedziały czasowe są zawsze wielokrotnością 15 minut, możesz to zrobić w ten sposób:

1) Miej uniwersalny zestaw zawierający wszystkie przedziały czasowe. Tutaj wielokrotności 15.

sadd universal 08:00 08:15 08:30 08:45 09:00 ...

2) Dla każdego członka drużyny macie osobny zestaw na zarezerwowane dla niego sloty. Dla członka1 08:15-08:50 musisz go zaręczyć do 09:00 .

sadd member_1 08:15 08:30 08:45 09:00

3) Podobnie zrób dla innych członków. członek2 08:30-09:30

sadd member_2 08:30 08:45 09:00 09:30

4) Teraz dla każdego członka możesz otrzymać darmowe sloty za pomocą

sdiff universal member_1

5) Dla wszystkich wolnych slotów. Musisz wykonać dwie operacje.

result = sinter member_1 member_2 ...
sdiff universal result

przecięcie całego zestawu członków da przedziały czasowe, w których wszyscy użytkownicy są zajęci. Więc nie możesz przydzielić tych slotów.

Wykonanie operacji odejmowania (różnicy) z zestawem uniwersalnym da ci całkowitą liczbę wolnych miejsc, które można zajmować.

Mam nadzieję że to pomoże.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Wzorce projektowe JavaScript — radzenie sobie z niechcianą asynchronią

  2. wydajność redis, przechowuj obiekt json jako ciąg

  3. Jak skonfigurować seler-redis w projekcie django na microsoft azure?

  4. Czy istnieje analog MGET dla skrótów Redis?

  5. Jak mogę uzyskać aktualnie uwierzytelnionego użytkownika Principal z zabezpieczeniami wiosennymi i Redis w aplikacji Spring Boot?