Simpleエンジニア

システム開発の備忘録

[Ruby] Tokyo Cabinet を使った簡単なライブラリ

2010年03月17日 16時56分13秒 | Ruby
とりあえずメモなのです。
詳しい説明は後日。

require 'tokyocabinet'

# 条件(keyword),結果(data) を保存する
def save_history(keyword, data, filepath)
  hdb = TokyoCabinet::HDB::new()
  hdb.open(filepath, TokyoCabinet::HDB::OWRITER|TokyoCabinet::HDB::OCREAT)
  hdb.put(keyword, data)
  hdb.close()
  return nil
end

# 条件(keyword)に対する結果を取り出す
def get_history(keyword, filepath)
  hdb = TokyoCabinet::HDB::new()
  hdb.open(filepath, TokyoCabinet::HDB::OREADER)
  result = hdb.get(keyword)
  hdb.close()
  return result

end

# 固定長簡易DBへログを入力する
# 1ログに255byte以上を使用する場合は、チューニング行を1行入れる
# 例 1行で1024Byte, 1ファイルサイズ1TB制限 fdb.tune(512, 1099511627776)
# 2GB以上のファイルサイズは、64ビットマシンでないと使用できない可能性があります
def save_log(log, filepath)
  if log.size < 255 then
    fdb = TokyoCabinet::FDB::new()
    fdb.open(filepath, TokyoCabinet::FDB::OWRITER|TokyoCabinet::FDB::OCREAT )
    fdb.put("next", keyword)
    fdb.close()
  end
end