sql >> Database teknologi >  >> NoSQL >> Redis

Redis er enkelttråd. Hvorfor skal jeg så bruge salat?

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.




  1. MongoDB:hvordan tæller man antallet af nøgler i et dokument?

  2. Konsekvent hashing som en måde at skalere skrivninger på

  3. Hvordan kan jeg generere et ObjectId med mongoose?

  4. MongoDB $ multiplicere