问候,使用Redis的列表数据结构或序列化红宝石哈希存储数据
我希望将一些数据存储在Redis的数据库,不知道应该往哪个方向走。该数据等同于类似与变量name
,street
和number
的地址。他们将被存储在较低的套管name
为重点,不会有双峰。
现在,我应该将其保存为一个列表或者我应该用JSON /马歇尔序列化的哈希({:name => 'foo', :street => 'bar', :number => 'baz'}
例如)和简单存储?
问候
托比亚斯
问候,使用Redis的列表数据结构或序列化红宝石哈希存储数据
我希望将一些数据存储在Redis的数据库,不知道应该往哪个方向走。该数据等同于类似与变量name
,street
和number
的地址。他们将被存储在较低的套管name
为重点,不会有双峰。
现在,我应该将其保存为一个列表或者我应该用JSON /马歇尔序列化的哈希({:name => 'foo', :street => 'bar', :number => 'baz'}
例如)和简单存储?
问候
托比亚斯
使用一个编码的JSON对象是一个不错的主意。您可以在投掷中看到一些示例 - 请查看how the models are saved。
Redis的哈希值是很好过,尤其是当你需要对哈希值的原子操作。
该链接404ing :( – 2011-03-29 08:35:42
Redis的哈希值是要走的路,只是完美。谢谢! – tbuehlmann 2011-10-24 09:34:45
您也可以使用类似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"}
如果你需要的东西更先进,有Ohm,它映射的Ruby类的Redis:
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
我了解了redis哈希(> = 1.3.10),它们看起来很完美! – tbuehlmann 2010-07-10 12:50:21