Redis
 sql >> Baza danych >  >> NoSQL >> Redis

Proste użycie EM::Synchrony#sync powoduje 'root fiber' FiberError — moja wina?

Myślę, że twój kod może działać, jeśli znajdziesz poprawną wersję em-hiredis, którą próbuje załatać, to jest jeden problem z luźnymi zależnościami.

Oto w pełni działający kod, ale oparty na głównej gałęzi em-synchrony:

Plik klejnotów:

source :rubygems

gem 'em-synchrony', :git => "git://github.com/igrigorik/em-synchrony.git"
gem 'em-hiredis', '~> 0.1.0'

test.rb:

require 'rubygems'
require 'bundler/setup'

require 'em-synchrony'
require 'em-synchrony/em-hiredis'

EventMachine.synchrony do
  redis = EM::Hiredis.connect

  redis.set('foo', 'bar')
  puts redis.get('foo')

  EM.stop
end

a następnie uruchom go za pomocą:

$ bundle
$ ruby test.rb

Łatanie małp jest z natury wadliwym sposobem łatania klejnotów, chyba że upewnisz się, że używana jest dokładna wersja klejnotu, który załatałeś, co jest czymś, co synchronizacja em powinna wymusić lub przynajmniej wykryć.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Jak złapać redis.serializer.SerializationException

  2. wyłącz serwer redis z wiersza poleceń

  3. Jak zaktualizować redis po aktualizacji bazy danych?

  4. Czas wygaśnięcia sesji ekspresowej i redis

  5. Hosting ScaleGrid dodaje obsługę wysoce dostępnych klastrów Redis™ z automatycznym dzieleniem na fragmenty