2

Webmachine アプリケーションでの Redis の使用法について、1 週間瞑想してきました。そして、私はまだ悟りを開いていません。

ここでは 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自分のリソースで変数を取得できますか?

4

1 に答える 1

6

いくつかの解決策があります。

  • ローカルまたはグローバルに redis 接続を登録する
  • gprocのようなプロセス レジスタを使用する
  • 接続の pid を webmachine リソース コンテキストに保持する
  • poolerpoolboyなどの接続プールを使用する
  • プールにリクエストをキューに入れたくない場合は、ディスカウントが収まる可能性があります

編集:誤解された質問、以下の最初の回答:

Webmachine と erdis はどちらも、OTP の原則に従う Erlang アプリケーションですapplicationsアプリケーションが OTP に準拠している場合、次のように、.appファイル内の に eris を追加できます。

{application, awesome_app, [
    {description, "My awesome app."},
    {vsn, "0.0.1"},
    {modules, []},
    {registered, []},
    {applications, [kernel, stdlib, 
                    eredis, 
                    webmachine]}
]}.

OTP 適合アプリケーションは release を使用します。リリースを作成してアプリケーションを起動するとapplications、アプリの前にアプリケーションが起動されます。

Rebarは、リリースをビルドおよび生成するための友達です (詳細はこちら)。鉄筋に代わるものは、この記事で説明されているシナンです。

于 2012-10-16T03:42:45.057 に答える