Redis
 sql >> Teknologi Basis Data >  >> NoSQL >> Redis

Penggunaan sederhana EM::Synchrony#sync menyebabkan FiberError 'root fiber' -- salah saya?

Saya pikir kode Anda dapat berfungsi jika Anda menemukan versi em-hiredis yang benar yang mencoba untuk menambal monyet, itu adalah satu masalah dengan dependensi yang longgar.

Berikut adalah kode yang berfungsi penuh tetapi berdasarkan cabang utama dari em-synchrony:

File Permata:

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

lalu jalankan dengan:

$ bundle
$ ruby test.rb

Penambalan monyet adalah cara yang cacat secara inheren untuk menambal permata kecuali Anda memastikan versi persis dari permata yang Anda tambal digunakan yang merupakan sesuatu yang harus ditegakkan atau setidaknya dideteksi oleh em-synchrony.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Panduan Referensi Cepat untuk Berbagai Basis Data NoSQL

  2. Jumlah kunci kedaluwarsa yang tercantum oleh perintah info pada redis slave tidak konsisten dengan apa yang saya lihat

  3. mengapa penggunaan memori redis tidak berkurang ketika del setengah dari kunci

  4. Perbedaan/fitur utama di antara sistem NoSQL yang paling dikenal

  5. redis Sepertinya server telah menutup koneksi