The cache may be kept in memory, and the local dns service may not keep a cache file, but there is a little more to it.
My ipconfig /displaydns was preserving entries between reboots for me. It must be kept on disk somewhere.
I had a dns problem today and when checking with an old VM, I discovered some really old entries in my local dnscache. These were entries from my old company and at first I thought maybe they were hacking in or I was still connected somehow to their network. But they also contained some of my own entries from VMs from quite awhile ago.
ipconfig /flushdns would not wipe the entries. I tried stopping and restarting the dns service. Did not help. I disconnected my router from the Internet and the entries still remained. Then I remembered that that VM used to be a domain controller and dns server from long ago so I suspected something didn't get uninstalled correctly.
I used procman.exe and isolated the instance of svchost.exe that responded to ping requests. On a ping, it opened the hosts file and nothing else. Stupid me, I should have checked the hosts file before starting all this. All the old entries were in the hosts file. Once they were wiped there, they did not show up in ipconfig /displaydns.
When the local dns service is stopped and restarted, existing entries are wiped, so that tends to confirm they are only kept in cache memory. But yes, persistent ipconfig dns entries used by ping via the local dns are located in c:\windows\system32\drivers\etc\hosts.
Hope this helps anyone else trying to troubleshoot this.