Transients are short-lived cached values with optional expiry. By default they live in the options table. With a persistent object cache (Redis, Memcached) they live in memory.
For sites without persistent caching, transients add database rows. For sites with persistent caching, they are nearly free and much faster than a database query.
wp_cache_get/wp_cache_set bypass the database entirely — use them when you do not need persistence across requests on uncached sites.