ここで、10個のキー - 値を持つRedisハッシュがあるとしましょう。私はそれらをすべてperlハッシュ(または任意の言語マップ/ハッシュ/辞書)に読み込み、3つの値を更新する必要があります。今度は、ハッシュの3つの値を変更し、それをredisに書き戻す必要があります。 (A)&(B)のうちどれが速いでしょうか?ハッシュ効率のRedis - hmset()ハッシュ効率
(A)$redis_handle->hmset($redis_hash_name,\%perl_hash);
または
(B)while (($k,$val) = each %three_changed_items_in_perl_hash) { $redis_handle->hset($redis_hash_name,$k,$val); }
私は何を考えるしようとしていることである: (A)は、10個の要素とRedisのための一つの通信です。しかし、赤は3つだけ更新する必要があります。値が変更されていなくてもredisは時間を無駄にしますか? (B)は、1つの要素を持つ3つのコミュニケーションです。
+1です。しかし、私の疑問の多くは、「ハッシュの変更されていない値は無視されますか? 。そうでなければ、私はループして、(C)を実行するときにperlで変更されたものを書き留める必要があります。 –
それは無視されないので、ネットワークとCPUの面で無駄な同じ値に更新されます。変更だけで構成されるハッシュを準備して送信してください。 –