I have option to set time-to-live on my server, but my knowledge about DNS is very weak. My question is when I set time-to-live option who is going to cache my DNS records, DNS server of my ISP, my PC or something third ? To whom this time-to-live means something ?
DNS TTL is stored by every server and client it touches. If you ping www.example.com that look up will go through your client, your configured DNS server and a number of intermediate DNS servers on its way to finding an address. Every one of those will record the record and its expiry time in its cache.
If a request is made for the same record before that TTL expires it can be answered from cache by the client, or any of the DNS servers and so reducing the load on the rest of the DNS infrastructure.