4

AWS EC2 Micro インスタンス (テスト環境) にデプロイされた Redis インスタンスについて面白い観察をしました。

Redis にヒットする必要があるさまざまな操作の実行時間を測定していました。要約すると、実行時間 (平均) を以下に示します。

Jedis -> Redis Connection is 63 milliseconds
Read of top Element in a list using lrange(<listname>,0,1) is 44 milliseconds
Read of entire Elements of set is 5ms
Iteration over entire Set space is 60ms( Set space  approx 130 elements)
Iteration over subset of elements of set is 5ms ( Subset element size is 5)

ここで気になるのは、最初の 2 つの操作 (接続とリストの一番上の要素の抽出) です。

接続の場合、コードを以下に示します。

 Jedis redis= new Jedis("localhost");

そして、リストの一番上の要素を抽出するには:

 String currentDate = redis.lrange(holderDate,0,1).get(0);

Redislrangeコマンドのドキュメントから:

時間計算量: O(S+N) ここで、S は開始オフセット、N は指定された範囲内の要素数です。

私のコードから、S は 0 になり、N は 1 になります。

私の質問は次のとおりです。これらのやや些細な操作でこれらの実行時間を引き起こしているのは何ですか。

これらの操作のパフォーマンスに悪影響を与える EC2 マイクロ インスタンスの特性はありますか。

Redis のデプロイに関するいくつかの重要な情報:

redis_version:2.4.10
used_memory:2869280
used_memory_human:2.74M
used_memory_rss:4231168
used_memory_peak:2869480
used_memory_peak_human:2.74M
mem_fragmentation_ratio:1.47

前もって感謝します。

4

1 に答える 1