2013-09-24 10 views
6

In Redis, alcune operazioni come SINTERSTORE hannoLe operazioni di esecuzione prolungate bloccano il rosso?

Complessità: O (N * M) caso peggiore in cui N è la cardinalità dell'insieme più piccolo insieme ed M è il numero di serie.

Nel mio caso di utilizzo, mi aspetto di confrontare gruppi di oltre 15.000 articoli ciascuno. L'esecuzione di un'operazione N * M su questi set sarebbe O (30.000). Non vi è alcun obbligo di tempo per l'operazione, il che significa che non mi interessa quanto tempo ci vuole. La mia domanda è se il mio Redis si bloccherà mentre questo calcolo sta accadendo. Qualche idea?

risposta

2

La semplice risposta è "sì", perché Redis è basata su una singola architettura filettato.

La risposta non semplice è "dipende": se si taglia il tuo Redis in modo ottimizzato, solo il frammento che esegue questa complessa operazione è bloccato, gli altri frammenti no.

1

Redis è single-threaded. Non blocca nulla, ma non elabora altri comandi fino a quando non finisce. Quindi è come se Redis fosse bloccato, il che penso sia ciò che volevi dire.

Consulta anche: Locking and Redis

Problemi correlati