So Unbound is actually a very powerful validating, recursive and caching DNS resolver. So without relaying on Google DNS or ISP DNS, you can host your own Unbound recursive DNS server, which can do request to other DNS servers and even root-dns servers. You can even setup your own stub zones and forward zones (sorry this is too much details I know). And like I said it also has caching feature. I will soon create a blog post about Unbound as well on my https://blog.melroy.org/ site be sure to subscribe.
Here is a snipped of part of my config, feel free to use it however you want:
# Serve stale data
serve-expired: yes
serve-expired-ttl: 86400 # one day, in seconds
serve-expired-client-timeout: 500 # 500ms
# Increase caches for better performance
msg-cache-slabs: 4
rrset-cache-slabs: 4
infra-cache-slabs: 4
key-cache-slabs: 4
rrset-cache-size: 300m
msg-cache-size: 150m
outgoing-range: 200
num-queries-per-thread: 100
Yes but he has no time for this sh*t of course. If you want to reach this kind of levels, you need to play hours and hours per day. And every day of the week. Nobody has time for that.