sql >> Database >  >> NoSQL >> Redis

Mongodb-kruispunt met tijdbereik

je kunt de sets van redis gebruiken voor deze use case:

Als de tijdvakken altijd in veelvouden van 15 minuten zijn, kunt u dit als volgt doen:

1) Zorg voor een universele set met alle tijdvakken. Hier veelvouden van 15.

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

2) Voor elk lid in het team een ​​aparte set hebben voor de voor hen geboekte slots. Voor lid1 08:15-08:50 je moet hem verloofd maken tot 09:00 .

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

3) Doe hetzelfde voor andere leden. member2 08:30-09:30

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

4) Nu kun je voor elk lid de gratis slots krijgen met

sdiff universal member_1

5) Voor de totale slots gratis. U moet twee bewerkingen uitvoeren.

result = sinter member_1 member_2 ...
sdiff universal result

het doorsnijden van alle sets van het lid geeft de tijdvakken waar alle gebruikers bezig zijn. Je kunt die slots dus niet toewijzen.

Door een aftrekbewerking (diff) uit te voeren met de universele set, krijgt u de totale slots die vrij kunnen worden bezet.

Ik hoop dat dit helpt.




  1. hdel binnen hget block nodejs redis

  2. MongoDB-replicasets in de cloud onderhouden met Ansible

  3. Index in MongoDB

  4. Hoe sorteert MongoDB records als er geen sorteervolgorde is opgegeven?