If you wanted to use Redis, I believe you would set it up on the server first (how you would install it would depend on the type of server you were running). Once completed, Redis would become available as a cache handler option in Joomla. This process should be the same for memcached and other caching methods that Joomla accepts. As for which caching system is best, I do not know (and it would be too broad to cover in this answer). Whether you store Joomla sessions in the cache may be a factor in determining which caching system you use.
Regardless of the caching system you employ it is a good idea to use a PHP accelerator such as Zend Opcache. Zend Opcache
improves PHP performance by storing precompiled script bytecode in
shared memory. This means that any subsequent requests for the same
PHP script will not need to be parsed and compiled (as is the case
normally) because the cached version of the script will be executed instead.
Other opcode cache systems are available, mostly depending on the PHP version used on the server. Zend Opcache works with PHP5.5+
Random note to self: There is a lot of mention of using APCu with Zend Opcache. From my understanding it works as a datastore and is much like Redis and memcached (I could be wrong though).
To further complicate things you could take a look at reverse caching proxies such as Nginx or Varnish. From my very limited research Varnish doesn't seem to work well with Joomla. I believe it also has problems with SSL.