Redisのデータベースサイズとメモリの比率はどのくらいですか?Redis:Database Size to Memory Ratio?
たとえば、80MBのデータベースがある場合、通常のWebアプリケーションで使用すると、RedisはどのくらいのRAMを使用しますか?
Redisのデータベースサイズとメモリの比率はどのくらいですか?Redis:Database Size to Memory Ratio?
たとえば、80MBのデータベースがある場合、通常のWebアプリケーションで使用すると、RedisはどのくらいのRAMを使用しますか?
RedisはディスクよりもRAMを多用します。おそらく、ダンプファイルのフォーマットはちょっと密集しています。これは、実際の生産システム(Ubuntuの10.04でのRedis 2.0.4を実行している64ビットのEC2インスタンス大)からいくつかの数字です:
$ redis-cli info | grep used_memory_human
used_memory_human:1.36G
$ du -sh /mnt/data/redis/dump.rdb
950M /mnt/data/redis/dump.rdb
あなたが見ることができるように、ダンプファイルは、メモリ使用量よりも数百メガバイト小さいです。
最終的には、データベースに保存する内容によって異なります。私は主に、わずか数(おそらく1%未満)のセットで、私のハッシュを持っています。どのキーにも非常に大きなオブジェクトが含まれておらず、平均オブジェクトサイズは889バイトです。
Redisデータベースはメモリに保存されているため、80MBのデータベースはRAMで80MBを占有します。
Redisはプログラムを使用したメモリが非常に少ないため、この例のWebサイト「キーが0〜999999の自然数である100万個のキーと、値としての文字列「Hello World」が100MBを使用する[Ramの] "。 My Redisアプリは約300kb〜500kbのRAMを使用するので、80MBのデータベースに到達するには多くのデータが必要です。 Redisはデータベースのディスクスナップショットにも保存するので、RAMに80MB、ハードドライブに80MBが必要です。
-1これはまったく正確ではありません。私は、RAMの11ギガバイトを占める4.1ギガバイトのデータを持っています。 – Alan
-1平易な間違った答え... –
"64ビットシステムでは、同じキーを格納するのに32ビットシステムよりもかなり多くのメモリを使用します。特に、キーと値が小さい場合、ポインタは64ビットシステムで8バイト必要です" –
私のマシンでいくつかのテストを行いましたが、これを確認できます。 Redisには、データベースのサイズ制限に対してアカウンティングに使用するRAMは含まれていないようです。 –
4つのredisインスタンスの1つに3.4Gダンプファイルがありますが、redisはメモリ内で16.52Gを使用していると言います。 –
2.4より古いRedisバージョンを使用していて、多くの削除を行っている場合、これが起こります。古いバージョンのRedisは、メモリをOSに戻すことはありませんでしたので、メモリ使用量は再起動するまで最高水準点に留まります。 – Theo