Eftersom du spenderar tid inte bara medan Redis exekverar kommandon, utan också på att överföra data (sända kommandon, ta emot resultat). I enkeltrådsläge medan du överför fungerar inte Redis. Medan Redis fungerar sker ingen överföring. Flera anslutningar eller en pipelined anslutning finns här för att hjälpa dig att mätta både bandbredd och CPU-cykler.
Och luttece handlar inte bara om hastighet. Det hjälper dig också att organisera din kod bättre med asynkront och reaktivt API.
Tillbaka till ämnet prestanda, här är ett enkelt riktmärke för att få en allmän förståelse för inverkan på trådning och poolning. Observera att även om poolning är lite långsammare (du lägger lite tid på pooloperationer), låter den dig isolera åtgärder (så att ett fel inte påverkar andra trådar) och använda MULTI
och blockeringskommandon.
Här är mina resultat (lokalt system har 4 kärnor, fjärrsystems CPU är ungefär 2 gånger långsammare):
Trådar=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ådar=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ådar=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 här att prestanda skalas väldigt bra med antalet trådar, så sallad är inte värdelös.