我认为,如果您找到正确的em-hiredis版本并尝试猴子补丁,那么您的代码就可以工作,这是依赖项松散的问题之一。
这是一个完全正常的代码,但是基于em-synchrony的master分支:
宝石文件:
source :rubygemsgem '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.stopend然后运行:
$ bundle$ ruby test.rb
猴子修补是修补宝石的一种固有的有缺陷的方法,除非您确保使用了修补的宝石的确切版本,这是同步应该执行或至少要检测到的。



