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

Опростеното използване на EM::Synchrony#sync причинява грешка в "root fiber" FiberError -- моя грешка?

Мисля, че кодът ви може да работи, ако намерите правилната версия на em-hiredis, която се опитва да заплати, това е един проблем с хлабавите зависимости.

Ето напълно работещ код, но базиран на главния клон на em-synchrony:

Gemfile:

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

и след това го стартирайте с:

$ bundle
$ ruby test.rb

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




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. ZRANGESTORE преди Redis 6.2.0

  2. Къде е директорията с данни в Redis?

  3. Redis достъп от MS Excel?

  4. Достъп до докеризиран redis от хост на Windows

  5. Redis zrevrangebyscore, сортиране, различно от лексикографския ред