一个星期以来,我一直在思考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资源的可变性呢?
eredis:start_link()
Con
有几种解决方案:
编辑:被误解的问题,下面的第一个答案:
Webmachine和eredis都是遵循OTP原理的 Erlang 应用程序。如果你的应用是OTP符合你可以eredis添加到applications您的.app文件,如下所示:
applications
.app
{application, awesome_app, [ {description, "My awesome app."}, {vsn, "0.0.1"}, {modules, []}, {registered, []}, {applications, [kernel, stdlib, eredis, webmachine]} ]}.
OTP兼容应用程序使用发行版。创建发行版并启动应用程序之后,applications将在其中启动应用程序。
Rebar是您构建和生成发行版的朋友(更多信息,请参见此处)。本文将介绍使用sinan替代钢筋的方法。