Zwiększanie setek liczników na raz, redis lub mongodb?
Tło / zamiar:
Dlatego zamierzam utworzyć od początku śledzenie zdarzeń i mieć kilka pomysłów na to, ale nie jestem pewien, jak najlepiej postępować po stronie bazy danych. Jedną z rzeczy, które mnie interesują, jest to, aby te zdarzenia były całkowicie dynamiczne, ale jednocześnie pozwalały na raportowanie liczników zdarzeń relacyjnych.
Na przykład wszystkie kraje w podziale według systemów operacyjnych. Pożądany efekt to:
Liczba wydarzeń w USAiOS - liczba wydarzeń, które miały miejsce w USAAndroid - liczba wydarzeń, które miały miejsce w USACA # zdarzeńiOS - liczba zdarzeń, które wystąpiły w CA.Android - liczba zdarzeń, które wystąpiły w CA.itp.Moim zamiarem jest akceptowanie takich nazw zdarzeń, jak poniżej:
/?country=US&os=iOS&device=iPhone&color=blue&carrier=Sprint&city=orlando&state=FL&randomParam=123&randomParam2=456&randomParam3=789
Co oznacza, że aby wykonać liczniki relacyjne dla czegoś podobnego do powyższego, potencjalnie zwiększałbym liczbę ponad 100 liczników na żądanie.
Załóżmy, że będzie ponad 10 milionów powyższych żądań dziennie.
Chcę, aby rzeczy były całkowicie dynamiczne pod względem śledzonych nazw zdarzeń, a także chcę to zrobić w taki sposób, aby wyszukiwanie danych pozostało bardzo szybkie. Jako taki szukałem w tym celu redis lub mongodb.
Pytania:
Czy jest lepszy sposób, aby to zrobić, licząc, zachowując dynamikę pól?
Czy pod warunkiem, że wszystko jest w jednym dokumencie (skonstruowanym jak drzewo), użycie operatora $ inc w mongodb do zwiększenia liczby 100+ liczników jednocześnie w jednej operacji będzie opłacalne i nie powolne? W tym przypadku mogę szybko pobrać wszystkie statystyki jednej „kampanii” w jednym zapytaniu.
Czy byłoby to lepiej przystosowane do redisowania i do zrobienia zincrby dla wszystkich odpowiednich liczników dla wydarzenia?
Dzięki