如何在Ruby中创建持久哈希?
我想要一个持久的散列;作为散列的对象,但可以在程序运行之间保持如何在Ruby中创建持久哈希?,ruby,Ruby,我想要一个持久的散列;作为散列的对象,但可以在程序运行之间保持 理想情况下,它只会将访问的值加载到内存中。因为持久性键/值存储是每个人的一种需求,因为碰巧有很多解决方案 这可能是保存Ruby对象的最简单方法 也可以,但不能直接处理符号 当然,MySQL和其他SQL数据库(如sqlite3)也解决了这个问题。通常,访问被封装在 Ruby内核有一个使用sdbm的. require 'sdbm' SDBM.open("/mypath/myfile.dbm") do |myMap| [...]
理想情况下,它只会将访问的值加载到内存中。因为持久性键/值存储是每个人的一种需求,因为碰巧有很多解决方案 这可能是保存Ruby对象的最简单方法 也可以,但不能直接处理符号 当然,MySQL和其他SQL数据库(如sqlite3)也解决了这个问题。通常,访问被封装在 Ruby内核有一个使用sdbm的.
require 'sdbm'
SDBM.open("/mypath/myfile.dbm") do |myMap|
[...]
myMap[key] = avalue
[...]
myvar = myMap[anotherKey]
[...]
end
创建文件:MyFr.DB.dir和MyField.DBM.PAG< P>我会考虑使用,它有一个哈希数据类型。这不仅会在程序运行时保持哈希,还会在多台机器上保持哈希。它的速度非常快,在内存中,您可以在<5分钟内安装并运行它
在IRB中(假设您已安装并正在运行redis server并已安装redis rb:
require "redis"
redis = Redis.new
重要的行动是:
redis.hset(key, field, value)
及
问题不只是封送对象,而是要有比封送完整散列更快访问的东西。我知道它存在于Perl中,所以我希望它存在于Ruby中。啊,你的意思是,dbm?如dbmopen等?将是一个很好且简单的解决方案。与其存储为散列,不如创建一个简单的模式,将对象映射到能够。它很快,特别是当你试图存储或搜索成百上千条记录时。@Guillaume你对Perl(
Storable
)有什么想法?它可能会帮助人们理解你在Ruby中想要什么。
redis.hget(key,field)