Redis
 sql >> база данни >  >> NoSQL >> Redis

Redis е единична нишка. Тогава защо трябва да използвам маруля?

Защото прекарвате време не само докато Redis изпълнява команди, но и прехвърляте данни (изпращане на команди, получаване на резултати). В режим на една нишка, докато прехвърляте, Redis не работи. Докато Redis работи, не се извършва прехвърляне. Множество връзки или една конвейерна връзка са тук, за да ви помогнат да наситите както честотната лента, така и циклите на процесора.

И luttece не е само за скорост. Също така ви помага да организирате кода си по-добре с асинхронен и реактивен API.

Обратно към темата за производителността, ето прост еталон, за да получите общо разбиране за въздействието на нишките и обединяването. Обърнете внимание, че докато обединяването е малко по-бавно (прекарвате известно време в операции на пула), то ви позволява да изолирате действия (така че грешката да не засяга други нишки) и да използвате MULTI и блокиращи команди.

Ето моите резултати (локалната система има 4 ядра, процесорът на отдалечената система е около 2 пъти по-бавен):

Теми=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

Теми=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

Теми=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

Тук можете да видите, че производителността се променя много добре с броя на нишките, така че марулята не е безполезна.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Spring data redis отменя сериализатора по подразбиране

  2. Как да преместя база данни Redis от един сървър на друг?

  3. Как да търся низове в redis?

  4. Как да променя между базата данни Redis?

  5. обработка на промени в пространството на имена по време на десериализация на JSON низ