Rubyで触ってみたメモです。
データの永続化、データの個数が多くなるほどファイル保存では苦しくなってきて、データベースを使うべきなんだけど、SQLiteのSQL文はつらく、KVSのお手軽さが嬉しいけどサーバーを立てたくないし、「鯖不要で動く手軽なKVSないかな………」と思ってたらありました。世界は優しい。
LevelDBはSQLiteのKVS版、といったところ。なんといってもサーバーが不要です。
OSXにインストール
$ brew install leveldb
$ brew uninstall snappy # やらないとエラー http://shokai.org/blog/archives/7078
$ gem install leveldb-ruby
Example
leveldb-ruby gemのおかげで、LevelDBを文字列専用のHashのように触ることができます。実にお手軽です。
example.rb
require 'leveldb'
db = LevelDB::DB.new("test.db") # なければカレントディレクトリにtest.dbフォルダが作成される
db["first"] = "first text" # Put
db["first"] #=> "first text" Get
db.to_h #=> {"first"=>"first text"}
db.delete("first") # Delete
db["first"] #=> nil
# key valueは文字列しか使えないよ
db[123] #=> TypeError
db["123"] = 789 #=> TypeError
他のオブジェクトが使いたいなら、シリアライズするとかJSON使うとか。
関連
-
LevelDB入門 (基本編) - from scratch (LevelDBのわかりやすい解説)
-
Rubotyのデータ永続化にLevelDBを使う - Qiita (Linuxへのインストール手順など)