1 unstable release

0.0.1 Apr 25, 2023

#36 in #pull

MIT license

17KB
389 lines

Why HMGET and not HGETALL

My thinking is that with the redis HGETALL all command the upstream to downstream data rate is is more shifted towards the downstream part the with HMGET. Let me explain.

When sending data to a redis instance the HGETALL command will ruffly send the same static amount of bytes for every type. The byte length of the response redis sends back, actually depends on the number of fields, field names and the length of the actual field value. So if you where to push and pull x objects to and from redis your upstream bandwidth would only be partially used with repercussion for your downstream bandwidth. In a one to one data link, like many server clusters have, it would be more efficient to use both up and downstream bandwidth to leverage the available.

Using HMGET reduces the downstream bandwidth consumption by the number of fields and field names in bytes and there fore increases the upstream bandwidth consumption by the same amount.

The HMGET command seamed to be a good balance between both up and downstream bandwidth.

Dependencies

~6–15MB
~210K SLoC