[英]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.