[英]How do I make a persistent hash in Ruby?
我想要一个持久的哈希; 一个充当哈希的对象,但是可以在程序运行之间保持不变。
理想情况下,它只会将访问的值加载到内存中。
由于持久性键/值存储是每个人的要求,因此,有很多解决方案。
YAML可能是持久保存Ruby对象的最简单方法。
JSON也可以,但不能直接处理符号。
MySQL和其他SQL数据库(例如sqlite3)当然也可以解决此问题。 通常,访问权限封装在ActiveRecord ORM库中 。
Ruby核心具有Marshaling库 。
使用sdbm
require 'sdbm'
SDBM.open("/mypath/myfile.dbm") do |myMap|
[...]
myMap[key] = avalue
[...]
myvar = myMap[anotherKey]
[...]
end
创建到文件:myfile.dbm.dir和myfile.dbm.pag
我会考虑使用具有哈希数据类型的redis-rb 。 这不仅可以在程序运行期间持久保存哈希,而且可以在多台计算机之间持久保存哈希值。 它的内存速度非常快,您可以在不到5分钟的时间内启动并运行它。
在IRB中(假设您已安装并正在运行redis-server
并已安装redis-rb:
require "redis"
redis = Redis.new
重要的操作有:
redis.hset(key, field, value)
和
redis.hget(key,field)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.