Refresh tokens don’t expire, but when you go through the refresh process you may or may not get a new refresh token, and so the most recent refresh token should be stored and used.
If you create an excessive number of tokens though it will kill the earlier tokens. For example if you have a user go through your OAuth flow 50 times for some reason, having the go through it a 51st time will kill the 1st set of tokens regardless of their expiration.