Redis - hmset()in hash - 效率

时间:2017-01-02 19:39:19

标签: hash redis

让我们说有一个Redis散列有10个键值。我将它们全部读入perl散列(或任何语言映射/散列/字典)并需要更新3个值。现在我更改了哈希中的3个值,需要将其写回redis。在(A)和& (B)哪一个会更快?

(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)是与redis有10个元素的一次交流。但redis只需要更新其中的3个。即使值没有改变,redis也会浪费时间吗? (B)是三个与一个元素重新交换的通信。

1 个答案:

答案 0 :(得分:2)

最快的是发送一个只有更新字段及其各自值的HMSET。 Redis只会更新这些字段,并且不会对未明确提及的字段执行任何操作。

(C) $redis_handle->hmset($redis_hash_name,\%three_changed_items_in_perl_hash);