1

gem "redis-store"Rails アプリでキャッシュ ストアとして使用したいと考えています。memcached とは異なり、redis は未使用のキーをクリーンアップしませんがEXPIRE、各キーに対して (オプションを介して:expire_in) コマンドを使用して、各キーの有効期間を制限できます。

次に、キャッシングに使用される redis キーの一部としてcache_keyモデル ( と を含むid)を使用したいと考えています。updated_atそのため、モデルが更新されると、新しいキャッシュ キーが作成され、古いキーは使用されません。

問題は、どの有効期限を選択するかということです。設定が小さすぎるとキャッシュのメリットがなくなり、長すぎると redis が未使用のデータでいっぱいになり、(おそらく) パフォーマンスが低下する可能性があります。黄金比はどこですか?

4

2 に答える 2

1

Redis の LRU 有効期限戦略を使用して、Redis が最も使用頻度の低いキー自体を期限切れにすることをお勧めします。これにより、キーの有効期限について自分で心配する必要がなくなります。

モデルの cache_key を提案どおりに使用すると、モデルが変更されたときに実際に新しいキーが生成されます。そのモデルの「古い」キーはビューで使用されなくなり、Redis はそれらを最終的に期限切れにします。

Redis を LRU ストアとして構成する方法については、 http://redis.io/topics/configを参照してください。

于 2013-05-02T11:31:44.920 に答える
0

確かにこれはアプリに依存しますか?非常に高価なページの場合は、できるだけまれに再計算する必要がありますが、急速に変化する場合は、オプションがありません。

私は個人的に実験したいと思います。いくつかの数値を選択して、それらがパフォーマンスにどのように影響するかを確認してください。最初はエラーが高く(データベース、この場合はRedisを信頼します)、問題が発生した場合はそれらを微調整します。

于 2013-01-11T16:17:17.080 に答える