一个星期以来,我一直在思考Webmachine应用程序中Redis使用的问题。而且我还没有开悟。
我将使用Eredis,这是用法示例:
{ok, Con} = eredis:start_link().
{ok, <<"OK">>} = eredis:q(Con, ["SET", "foo", "bar"]).
{ok, <<"bar">>} = eredis:q(Con, ["GET", "foo"]).
据我了解,
eredis:start_link()
只能在某个地方调用一次。但是,如何在资源中获取Con
变量? 最佳答案
有几种解决方案:
编辑:被误解的问题,下面的第一个答案:
Webmachine和eredis都是Erlang applications following the OTP principles。如果您的应用程序符合OTP规范,则可以将ededis添加到
applications
文件中的.app
中,如下所示:{application, awesome_app, [
{description, "My awesome app."},
{vsn, "0.0.1"},
{modules, []},
{registered, []},
{applications, [kernel, stdlib,
eredis,
webmachine]}
]}.
OTP兼容应用程序使用releases。创建发行版并启动您的应用程序之后,
applications
中的应用程序将在您的应用程序之前启动。Rebar是您构建和生成发行版(more info here)的 friend 。钢筋的替代方法是sinan,它在this article中进行了描述。