0
让我们说有一个Redis散列有10个关键 - vals。我将它们全部读入perl hash(或任何语言map/hash/dict),并需要更新3个值。现在我改变了散列中的3个值,并且需要将其写回redis。 (A)&(B)哪一个会更快?Redis - hmset()in hash - 效率
(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到。但redis需要更新其中的3个。即使值没有改变,redis是否浪费时间? (B)是3个通信用redis与1个元素。
+1。但我更怀疑的是:“Redis会忽略那些未经改变的哈希值?” 。否则,我需要循环并在做(C)时记下perl中更改的那些。 –
它不会忽略它们,因此它们将被更新为它们在网络和CPU方面浪费的相同值 - 只准备一个只包含更改并发送它的散列。 –