我知道Perl和Tie :: Hash有很多类似的解决方案,所以对于Ruby来说可能有类似的宝石.那是什么宝石?
编辑:据我所知,PStore和yaml解决方案基于读取,解组,重新编组和在每次更改时编写整个数据库.这不仅要求所有它都适合内存,它是O(n ^ 2).所以它们都不是一个特别好的解决方案.
解决方法
FSDB is a file system data base. FSDB provides a thread-safe,process-safe Database class which uses the native file system as its back end and allows multiple file formats and serialization methods. Users access objects in terms of their paths relative to the base directory of the database. It’s very light weight (the state of a Database is essentially just a path string,and code size is very small,under 1K lines,all ruby).
$sudo gem install fsdb
以下是文档中的示例:
require 'fsdb' db = FSDB::Database.new('/tmp/my-data') db['recent-movies/myself'] = ["LOTR II","Austin Powers"] puts db['recent-movies/myself'][0] # ==> "LOTR II" db.edit 'recent-movies/myself' do |list| list << "A la recherche du temps perdu" end
原文地址:https://www.jb51.cc/ruby/269431.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。