2010-04-14

[翻訳]rediscookbook/3_object_level_interaction/introduction_to_storing_objects

### 問題

任意の Ruby オブジェクトを Redis に保存したい。

### 解法

どんなキー/値データベースでも、構造化するのにキーを使えます。:
ここでは Ruby を使った例ですが、原則どんなプログラミング言語でも利用できます。

    >> redis.set "event:42:name", "Redis Meetup"
    => "OK"

    >> redis.get "event:42:name"
    => "Redis Meetup"

同じ例ですが、今回はまず固有の ID を生成しています。:

    >> id = redis.incr "event"
    => 1

    >> redis.set "event:#{id}:name", "Redis Meetup"
    => "OK"

    >> redis.get "event:#{id}:name"
    => "Redis Meetup"

別解は、保存するときにデータをシリアライズして、検索するときにデコードすることです。:

    >> id = redis.incr "event"
    => 2

    >> redis.set "event:#{id}", {:name => "Redis Meetup"}.to_json
    => "OK"

    >> JSON.parse redis.get("event:#{id}")
    => {"name" => "Redis Meetup"}

最新バージョンの Redis で利用可能なもう1つの解は、新しいデータ Hash 型を使うことです。:

    >> id = redis.incr "event"
    => 3

    >> redis.hset "event:#{id}", "name", "Redis Meetup"
    => "OK"

    >> redis.hget "event:#{id}", "name"
    => "Redis Meetup"

お分かりのように、Redis は非常に柔軟で、情報を保存する最も良い戦略を決められます。

オブジェクト属性に基づくキー生成を自動化するいくつかのライブラリがあります。これらをチェックして使い方を学んでください。

* [DataMapper Adapter](http://github.com/whoahbot/dm-redis-adapter)
* [Ohm](http://ohm.keyvalue.org)
* [Redis Model](http://github.com/voloko/redis-model)
* [Redis Objects](http://github.com/nateware/redis-objects)
* [Remodel](http://github.com/tlossen/remodel)

### 参照

いろいろなライブラリを使った戦略のRuby のオプションを確認するには
 **オブジェクトを保存するために Ruby ライブラリを使う** をチェックアウトしてください。

0 件のコメント:

コメントを投稿