5

アプリケーションロジックで明らかに問題が発生するまでメモリ内で成長し続けるredisインスタンスがあります。何万ものキーがあり、メモリの最大のユーザーを見つけたいと思っています。これを解決するための既知のテクニックはありますか?

4

1 に答える 1

2

進むべき道は、どのキーが最大であるかを見つけることではなく、キーがどのような特性を持っているか、つまりどのような種類のデータを保持しているかを見つけることだと思います。

Redis はリレーショナル データベースの代替ではなく、補完的な層です (非常に重要で便利ですが、それでも補完的です)。これを使用して、さまざまな方法でアプリケーション内のデータへのアクセスを高速化します。つまり、結局のところ、Redis にはおそらくすべてを含めるのではなく、最も頻繁に使用されるデータ、および/または一般的な統計と集計のみを含める必要があります。

アプリケーションのドメインはわかりませんが、最初はキーの有効期限を探してみてください。アクセス頻度の低いキーは、最終的に削除する必要があります。

さらなるステップとして、冗長キー、つまり同じデータが複数の形式で保存されているかどうかを確認します。

注: Redis の冗長性にはまったく問題はありません。実際、これは推奨されるパターンです (指定されたすべてのクエリのアクセス速度を優先して、正規化なしで Redis を使用します)。私が提案しているのは、他のものを考えるとまったく役に立たないキーのクラスを見つけるかもしれないということだけです。つまり、それらは速度の利点を追加せず、Redis データベースを膨張させるだけです。

ランタイム Redis インスタンスの探索に役立つ Redis GUI アプリケーションをいくつか見てみてください。

于 2013-01-13T22:36:25.080 に答える