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

Репликация на Redis и разлика в разделянето на Redis (клъстер).

Раздробяването е почти антитеза на репликацията, въпреки че те са ортогонални концепции и работят добре заедно.

Разделянето, известно още като разделяне, е разделяне на данните по ключ; Докато репликацията, известна още като огледално копиране, е копиране на всички данни.

Разделянето е полезно за увеличаване на производителността, намаляване на удара и натоварването на паметта на всеки един ресурс. Репликацията е полезна за получаване на висока наличност на четения. Ако четете от множество реплики, вие също ще намалите процента на попадане на всички ресурси, но изискването за памет за всички ресурси остава същото. Трябва да се отбележи, че докато можете да пишете на подчинен, репликацията е само главен->подчинен. Така че не можете да мащабирате записите по този начин.

Да предположим, че имате следните кортежи:[1:Apple], [2:Banana], [3:Cherry], [4:Durian] и имаме две машини A и B. С Sharding може да съхраняваме ключове 2,4 на машина А; и ключове 1,3 на машина B. С репликация съхраняваме ключове 1,2,3,4 на машина A и 1,2,3,4 на машина B.

Разделянето обикновено се осъществява чрез извършване на последователно хеширане на ключа. Горният пример беше реализиран със следната хеш функция h(x){return x%2==0?A:B}.

За да комбинираме концепциите, можем да репликираме всеки фрагмент. В горните случаи всички данни (2,4) на машина A могат да бъдат репликирани на машина C и всички данни (1,3) на машина B могат да бъдат репликирани на машина D.

Всяко хранилище ключ-стойност (от което Redis е само един пример) поддържа разделяне, въпреки че определени функции за кръстосани ключове вече няма да работят. Redis поддържа репликация извън кутията.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Опростеното използване на EM::Synchrony#sync причинява грешка в "root fiber" FiberError -- моя грешка?

  2. Сравняване на 64-битово число със знак с помощта на 32-битови операции в Lua

  3. Една и съща задача, изпълнена няколко пъти

  4. Защо един екземпляр на джедаите не е нишки?

  5. ConnectionMultiplexer.Connect прекъсва по време на свързване към Redis сървър