2013-09-24 14 views
6

W Redis pewne operacje, takie jak SINTERSTORE mająCzy działasz z długimi operacjami blokowania redis?

złożoności czasowej: O (N * M), w najgorszym przypadku, gdzie N jest liczność najmniejszy zestaw i M jest liczbą odbiorników.

W moim przypadku użycia oczekuję porównania zestawów po 15 000 sztuk każdy. Wykonywanie operacji N * M na tych zestawach będzie wynosić O (30 000). Nie ma czasu na operację, więc nie obchodzi mnie, ile czasu to zajmie. Moje pytanie brzmi, czy mój Redis się zablokuje podczas tych obliczeń. Jakieś pomysły?

Odpowiedz

2

Prosta odpowiedź brzmi „Tak”, ponieważ Redis opiera się na jednym gwintowanym architektury.

Nie-prosta odpowiedź brzmi: "to zależy" - jeśli odrzucisz swój Redis w zoptymalizowany sposób, tylko odłamek, który wykonuje tę złożoną operację, jest zablokowany, a pozostałe odłamki nie.

1

Redis jest jednowątkowy. Nie blokuje niczego, ale nie przetworzy żadnych innych poleceń, dopóki ta się nie zakończy. To tak, jakby Redis byli zablokowani, co, jak sądzę, miało na myśli.

Zobacz także: Locking and Redis

Powiązane problemy