Fordi du bruger tid, ikke kun mens Redis udfører kommandoer, men også på at overføre data (sende kommandoer, modtage resultater). I enkelttrådstilstand, mens du overfører, virker Redis ikke. Mens Redis virker, sker der ingen overførsel. Flere forbindelser eller en rørforbindelse er her for at hjælpe dig med at mætte både båndbredde og CPU-cyklusser.
Og luttece handler ikke kun om hastighed. Det hjælper dig også med at organisere din kode bedre med asynkron og reaktiv API.
Tilbage til præstationsemnet, her er et simpelt benchmark for at få en generel forståelse af trådning og pooling-påvirkning. Bemærk, at selvom pooling er en smule langsommere (du bruger noget tid på pool-operationer), giver det dig mulighed for at isolere handlinger (så en fejl ikke påvirker andre tråde) og bruge MULTI
og blokeringskommandoer.
Her er mine resultater (lokalt system har 4 kerner, fjernsystem-CPU er omkring 2 gange langsommere):
Tråde=1
Benchmark (address) Mode Cnt Score Error Units
LettuceThreads.pooled socket thrpt 25 35389.995 ± 1325.198 ops/s
LettuceThreads.pooled localhost thrpt 25 32075.870 ± 416.220 ops/s
LettuceThreads.pooled remote thrpt 25 3883.193 ± 67.622 ops/s
LettuceThreads.shared socket thrpt 25 39419.772 ± 1966.023 ops/s
LettuceThreads.shared localhost thrpt 25 34293.245 ± 1737.349 ops/s
LettuceThreads.shared remote thrpt 25 3919.251 ± 49.897 ops/s
Tråde=2
Benchmark (address) Mode Cnt Score Error Units
LettuceThreads.pooled socket thrpt 25 56938.187 ± 2727.772 ops/s
LettuceThreads.pooled localhost thrpt 25 49420.748 ± 2091.631 ops/s
LettuceThreads.pooled remote thrpt 25 7791.706 ± 133.507 ops/s
LettuceThreads.shared socket thrpt 25 81195.900 ± 1593.424 ops/s
LettuceThreads.shared localhost thrpt 25 78404.688 ± 3878.044 ops/s
LettuceThreads.shared remote thrpt 25 3992.023 ± 39.092 ops/s
Tråde=4
Benchmark (address) Mode Cnt Score Error Units
LettuceThreads.pooled socket thrpt 25 87345.126 ± 8149.009 ops/s
LettuceThreads.pooled localhost thrpt 25 75003.031 ± 4481.289 ops/s
LettuceThreads.pooled remote thrpt 25 15807.410 ± 225.376 ops/s
LettuceThreads.shared socket thrpt 25 169112.489 ± 3749.897 ops/s
LettuceThreads.shared localhost thrpt 25 115464.778 ± 5099.728 ops/s
LettuceThreads.shared remote thrpt 25 7952.492 ± 133.521 ops/s
Du kan se her, at ydeevnen skalerer meget godt med antallet af tråde, så salat er ikke ubrugeligt.