GDBMサーバ

とりあえず、作ってみた。

サーバのコードがこんな感じ。

require 'gdbmstore'

gdbm_srv = GDBMStore::Server.new('gdbmstore.db', 18211)
gdbm_srv.logger = lambda {|method, params|
  $stderr.puts "#{method}: #{params.join(',')}"
}
trap(:INT) { gdbm_srv.shutdown }
gdbm_srv.start

クライアントのコードがこんな感じ。

require 'gdbmstore'

GDBMStore::Client.new('localhost', 18211) {|dbm|
  1000.times do |i|
   dbm[i.to_s] = (i * i).to_s
  end

  1000.times do |i|
    dbm[i.to_s]
  end
}

速さはこのくらい。

~$ time ruby gdbm-client.rb

real    0m0.467s
user    0m0.015s
sys     0m0.047s

ソースコード

プロトコルがセンスないなぁ…異常系もヤバそうだし。