簡體   English   中英

如何在Ruby中進行持久性哈希處理?

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM