3

ruby Web アプリケーション (レール) 用の jeremy/statsd-rubyクライアントでbatsd (を使用する)statsdライブラリを使用します。そして、単純な訪問統計を維持する必要があります。すごい!上記の宝石のメソッドを使用します。statsd.increment('users.visits')

すると、この操作は一度 new sorted set( ) を作成し、毎回zset1 つの要素 ( のように見えます) を追加することに気付きました。このアプローチを使用する"1338932870<X>1理由 HINCRBYメソッドを simlpe ハッシュ ( toではない) で使用する方が簡単で高速statsdではないでしょうか?zaddzset

私は知ってstatsdいます、よく知られた良い楽器ですが、それはredisのカウンター標準パターンですか? 私はredisとnosqlがまったく初めてです、ありがとう!

4

1 に答える 1

4

私はパッケージに詳しくありませんが、HINCRBY を使用するだけであれば、メトリックの最後の値を計算して Redis に保持するだけです。統計パッケージは、メトリックの進化を保存する必要があるかもしれないと思います(経時的なグラフをプロットするためなど)。

zset の使用は、タイムスタンプ (つまり時系列) で並べ替えられたイベントを格納する方法であり、したがって、このメトリックの進化の履歴を保持します。最後の値を保持するよりも遅く、より多くのメモリを消費しますが、履歴があります。全文については、以下のノアのコメントを参照してください。

HINCRBY または INCRBY を使用してカウンターをリアルタイムで集計することと、zset を使用して時系列を保存することは、2 つの一般的な Redis パターンです。

于 2012-06-06T15:00:54.623 に答える