def get_multi(*keys)
      keys.flatten!
      keys.compact!

      return {} if keys.empty?

      if block_given?
        pipelined_getter.process(keys) { |k, data| yield k, data.first }
      else
        {}.tap do |hash|
          pipelined_getter.process(keys) { |k, data| hash[k] = data.first }
        end
      end
    end
#
Fetch multiple keys efficiently.
If a block is given, yields key/value pairs one at a time.
Otherwise returns a hash of { 'key' => 'value', 'key2' => 'value1' }