What is the difference between buffer and queue?

I am using file_single format for my output plugin. However, I am not understanding the difference between buffer and queue from here fluentd-docs-gitbook/buffer-internal-and-parameters.png at a50cb1d564e1285c59b91c7fade2bf80f05394ce · fluent/fluentd-docs-gitbook · GitHub

If the buffer is kept on disk, where is the queue kept?
When using file_single, is memory(non-disk) used at all anywhere to store the data when tailing input files?

Buffer and Queue are “buffer state” and their states differ.
They are kept on memory or disk or some places when you use custom buffer plugin.

When using file_single, is memory(non-disk) used at all anywhere to store the data when tailing input files?

Fluentd’s file_single plugin does not use memory to store buffer.
Before routing tailed logs to output or filter, Fluentd uses memory to store them and pass into the latter pipeline plugins.