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

Производителност на Redis на многоядрен процесор

Разгледах уебсайта на redis и открих, че redis не е проектиран за многоядрен процесор. Въпросът ми е защо е така?

Това е дизайнерско решение.

Redis е еднонишков с epoll/kqueue и се мащабира неограничено по отношение на I/O паралелност. [email protected] (създател на Redis)

Причина за избора на подход, управляван от събития, е тази синхронизация между нишките има цена както в софтуера (сложност на кода), така и на ниво хардуер (превключване на контекста). Добавете към това, че тесното място на Redis обикновено е мрежата , а не процесора. От друга страна, еднонишковата архитектура има своите предимства (например гаранция за атомарност).

Следователно циклите на събития изглеждат като добър дизайн за ефективен &мащабируеми система като Redis.

Освен това, ако отговорът е да, как можем да направим 100% използване на ресурсите на процесора с redis на многоядрени процесори.

Подходът на Redis за мащабиране върху множество ядра е шардинг , предимно заедно с Twemproxy.

Ако обаче по някаква причина все пак искате да използвате многонишков подход, погледнете Thredis, но се уверете, че разбирате последиците от това, което е направил неговият автор (не можете да го използвате като главен за репликация, например).



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Джедаи, не мога да получа връзка с джедаи:не може да получи ресурс от пула

  2. Redis разлика между два списъка?

  3. Redis / Вземете всички ключове и стойности от redis с префикс

  4. Проектиране на приложение с Redis като хранилище на данни. Какво? Защо?

  5. Redis::CommandError:ERR Клиентът изпрати AUTH, но не е зададена парола