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

Как да направите основно ГЛЕДВАНЕ със StackExchange.Redis

Причината WATCH не е изложен директно е поради начина, по който SE.Redis е проектиран да мултиплексира команди от различни стекове от повиквания в една връзка. Това прави необходимо всяка транзакция да бъде много строго управляван.

Не ми е ясно каква би била целта на „непроменено“ само по себе си , без сравнение с някаква известна стойност - в противен случай просто създавате условие за състезание. Определено би било възможно да се добави поддръжка за него, но наистина бих искал първо да разбера очаквания случай на употреба. Можеш ли да обясниш?

Повторете вашата редакция; предпочитаният от вас пример (последният) просто не е възможен с redis - нищо общо с SE.Redis; ако направите GET вътре в MULTI , не получавате отговора до EXEC завършва - така че е възможно да не можете да използвате стойността в SET :все още не е наличен .

Ако не беше за мултиплексиране, бихте могли да пренаредите малко втория си пример (въз основа на това, което прави SE.Redis):

WATCH key
val = GET key
MULTI
val = val + 1
SET key $val
EXEC

това е типичното използване на WATCH :вие гледате нещата, които задавате предварително, тогава знаете, че {key} е непроменен по време на този цикъл (или поне транзакцията ще бъде прекъсната; няма непоследователно състояние). Въпреки това, WATCH не работи добре с мултиплексор , поради което SE.Redis ви принуждава надолу по пътя на извличане на стойността преди транзакцията , след което ви позволява да сравните стойността, за да потвърдите, че тя е непроменена. Същият резултат; малко по-различен подход, но е безопасен за мултиплексор. За повече информация по тази тема вижте тук.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Azure Redis Cache – Множество грешки TimeoutException:Изчакване при изпълнение на GET {key}

  2. Добър начин да използвате socket.io с клъстер в многоядрен сървър?

  3. Как да получите всички ключове в Redis

  4. Бързо справочно ръководство за различни NoSQL бази данни

  5. Как да запишете само една база данни в Redis?