とりあえず、作ってみた。
サーバのコードがこんな感じ。
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
ソースコード
プロトコルがセンスないなぁ…異常系もヤバそうだし。