如何使用Ruby和Rack为API设置redis?

时间:2015-08-05 16:23:51

标签: ruby redis rack grape

我正在使用Grape,Ruby和Rack(没有框架)构建一个简单的API。我想使用redis来存储API正在使用的数据。到目前为止,我已经使用Grape定义了Directory类和DirectoryAPI类。 Directory类具有以与API完全相同的方式返回JSON数据的方法。

我以前从未设置过redis,所以我不知道怎么做。我想要完成的是:

  • 运行rackup时,请对redis进行批量插入,以便预先填充数据。预先填充的数据来自使用我的Directory类。

  • 让我的GET路由返回存储在redis中的哈希

  • 让我的API的POST路由为redis添加条目

如何在运行rackup时配置redis运行和填充?我应该以某种方式在我的config.ru文件中执行此操作并为redis定义一个新类吗?我如何让API类与redis交互?

1 个答案:

答案 0 :(得分:1)

当我使用redis时,我会执行以下操作:

在我的初始化文件夹文件夹中,我创建了一个文件redis.rb并创建连接:

`Redis.new(:host => "10.0.1.1", :port => 6380, :db => 15)`

然后我将此conn分配给全局变量$redis,以便我可以随处访问它。

然后由您决定,您可以根据需要整理代码。

一个例子:

Controller A
def index
  MemoryModel.getAll()
end

class MemoryModel

  def getAll()
    $redis.get("key")
  end
end

看看redis gem你可以在那里找到一些例子,还有connection_pool gem