替代在类似于redis的会话之间存储信息

时间:2016-08-05 12:26:02

标签: ruby-on-rails ruby database

对于我的项目,我使用外部API。在每次调用时,API都会提供一个令牌,以便下次您请求数据时,他们不必转储所有数据,只需转储更新。我希望这些数据在开发中的不同服务器会话之间保持不变。在我的Mac操作系统上,我使用redis进行此类操作并将令牌存储在键下,我目前正在开发Windows并且无法安装任何类型的redis替代品,这些场景的最佳做法是什么?我应该将这些信息存储在数据库中,还是更有效,更清洁?

1 个答案:

答案 0 :(得分:0)

根据mwp的回答,我使用以下内容对我有用:

要求' pstore'在我的模块之上,我写了两个方法,一个用于保存令牌,另一个用于检索令牌:

def get_event_token
    tokens = PStore.new("tokens.pstore")
    event_token = ""
    tokens.transaction(true) do 
        event_token = tokens.fetch(:event_token).to_s
    end
    event_token
end

def store_event_token(event_token)
    tokens = PStore.new("tokens.pstore")
    tokens.transaction do 
        tokens[:event_token] = event_token
    end
end

对于检索,请确保在事务之外定义event_token,因为由于某种原因,事务的范围似乎仅限于事务