sql >> データベース >  >> NoSQL >> Redis

Redis SETのパフォーマンスがGETよりも優れているのはなぜですか?

    実際には、これは、デフォルトで実際のコマンド実行時間よりも多くのI/Oを測定する効果にすぎません。ベンチマークでパイプラインを有効にし始めると、それは実際のコマンドパフォーマンスの尺度になり、数値が変化します。

    $ redis-benchmark -q -n 1000000 -P 32 set foo bar
    set foo bar: 338964.03
    $ redis-benchmark -q -n 1000000 -P 32 get foo
    get foo: 432713.09 requests per second
    

    GETが高速になりました:-)

    ベンチマークドキュメントページにパイプラインを含める必要があります。

    編集: これはここでさらに明白です:

    redis 127.0.0.1:6379> info commandstats
    # Commandstats
    cmdstat_get:calls=1001568,usec=221845,usec_per_call=0.22
    cmdstat_set:calls=831104,usec=498235,usec_per_call=0.60
    

    このコマンドは、I / Oを考慮せずに、要求を内部的に処理するためのCPU時間を提供します。 SETの処理は3倍遅くなります。




    1. PostgresとHasuraでのCouchDBスタイルの同期と競合解決

    2. RedisサーバーのCPU使用率を改善するにはどうすればよいですか?

    3. MongoDB $ second

    4. MongoDB dropIndex()