1

ご挨拶、

一部のデータを redis db に保存したいのですが、どちらに行けばよいかわかりません。nameデータは、変数、streetおよびを含むアドレスのようなものと同等ですnumber。それらは小文字の as キーの下に格納され、nameダブレットはありません。

今、リストとして保存する必要がありますか、それとも{:name => 'foo', :street => 'bar', :number => 'baz'}JSON/Marshall を使用してハッシュ (たとえば) をシリアル化し、単純に保存する必要がありますか?

よろしく

トバイアス

4

2 に答える 2

1

エンコードされた json オブジェクトを使用することは非常に良い考えです。hurl でいくつかの例を見ることができます —モデルがどのように保存されるかを確認してください。

特にハッシュ値に対してアトミック操作が必要な場合は、Redis ハッシュも便利です。

于 2010-07-12T04:46:02.193 に答える
1

また、Nestのようなものを使用して、鍵を乾燥させることもできます。

addresses = Nest.new("Address", Redis.new)

this_address = addresses[1]
# => "Address:1"

this_address.hset(:name, "foo")
this_address.hset(:street, "bar")

this_address.hgetall
# => {"name" => "foo", "street" => "bar"}

より高度なものが必要な場合は、Ruby クラスを Redis にマップするOhmがあります。

class Address < Ohm::Model
  attribute :name
  attribute :street
  attribute :number
end

# Create
Address.create(:name => "foo", :street => "bar")

# Find by ID
Address[1]

# Find all addresses with name "foo"
class Address < Ohm::Model
  attribute :name
  attribute :street
  attribute :number

  index :name
end

Address.find(:name => "foo")
# => Array-like with all the Address objects
于 2010-08-26T03:11:13.143 に答える