Sagen wir, es gibt einen Redis - Hash, der 10 Schlüsselwerte hat. Ich lese sie alle in einen Perl-Hash (oder jede Sprachenkarte/Hash/Dict) und muss 3 der Werte aktualisieren. Jetzt habe ich die 3 Werte im Hash geändert und muss es wieder in redis schreiben. unter (A) & (B) welche wird schneller sein?Redis - hmset() in Hash - Effizienz
(A) $redis_handle->hmset($redis_hash_name,\%perl_hash);
oder
(B) while (($k,$val) = each %three_changed_items_in_perl_hash) { $redis_handle->hset($redis_hash_name,$k,$val); }
Was ich versuche, ist zu betrachten: (A) ist eine Kommunikation mit 10 Elementen Redis. Aber redis muss nur 3 von ihnen aktualisieren. Vergeudet die Wiederverwendung Zeit, auch wenn Werte nicht geändert werden? (B) ist drei Kommunikationen mit 1 Element zu rediszieren.
+1. Aber mehr von meinen Zweifeln ist "Werde ich diese unveränderten Werte in Haschisch wieder ignorieren?" . Ansonsten muss ich die geänderten in Perl durchgehen und notieren (C). –
wird sie nicht ignoriert, so dass sie auf den gleichen Wert aktualisiert werden, der in Bezug auf Netzwerk und CPU verschwenderisch ist - bereite einfach einen Hash vor, der nur aus den Änderungen besteht und sende ihn. –