Existem diferentes comportamentos que você pode dizer ao redis para obedecer quando ele tiver preenchido sua memória.
# volatile-lru -> remove the key with an expire set using an LRU algorithm
# allkeys-lru -> remove any key accordingly to the LRU algorithm
# volatile-random -> remove a random key with an expire set
# allkeys->random -> remove a random key, any key
# volatile-ttl -> remove the key with the nearest expire time (minor TTL)
# noeviction -> don't expire at all, just return an error on write operations
o padrão é
# maxmemory-policy volatile-lru
Talvez a melhor opção seja 'volatile-ttl', e certifique-se de que todos os seus caches incluam as opções :expires_in.
Não sou especialista e não fiz isso. Isso é apenas baseado no meu entendimento atual de redis e rails.