3

redisのメモリ使用量を定期的にチェックするpythonスクリプトを書いています。used_memoryor from redis used_memory_humaninfo は、redis が現在使用しているメモリの量を教えてくれます。しかし、使用されているメモリの割合を知りたいです。

max_memoryredis 情報では、redis がシステムで利用可能なメモリを使い果たすため、次のような情報は得られません。しかし、maxmemoryのオプションredis.confが設定されている場合はどうなるでしょうか。

システムに 1 GB の RAM が搭載されているのに、100 MBmaxmemoryに設定されている場合はどうなりますか? それでは、メモリ使用率をどのように知ることができますか?

4

1 に答える 1

9

コマンドを使用CONFIGして、最大メモリとメモリ ポリシーに関する必要な情報を取得できます。構成情報を取得する構文は次のとおりです。

config get <option-name>

maxmemory 設定を取得する方法の例を次に示します。

redis 127.0.0.1:6379> config get maxmemory
1) "maxmemory"
2) "0"

maxmemory-policy 設定を取得する方法の例を次に示します。

redis 127.0.0.1:6379> config get maxmemory-policy
1) "maxmemory-policy"
2) "volatile-lru"

maxmemory 管理にはさまざまなポリシーがあります (サンプルの Redis 構成ファイルから説明を取得できます)。

MAXMEMORY POLICY: maxmemory に達したときに、Redis は削除するものをどのように選択しますか? 次の 5 つの動作から選択できます。

  1. volatile-lru -> LRU アルゴリズムを使用して有効期限が設定されたキーを削除します
  2. allkeys-lru -> LRU アルゴリズムに従って任意のキーを削除します
  3. volatile-random -> 有効期限が設定されたランダム キーを削除します
  4. allkeys->random -> ランダムなキー、任意のキーを削除
  5. volatile-ttl -> 有効期限が最も近いキーを削除します (マイナー TTL)
  6. noeviction -> まったく期限切れにならず、書き込み操作でエラーを返すだけです

以下は、pyredis を使用して同様の結果を得る方法の例です (標準ポートに localhost データベースがあると仮定します)。

>>> import redis
>>> c = redis.Redis()
>>> print c.config_get('maxmemory')
{'maxmemory': '0'}
于 2012-08-14T10:46:35.450 に答える