Redisには、あなたのケースに適している可能性のあるエビクションポリシーがあります。maxmemory-policyをvolatile-lruに設定すると、Redisは次のようになります。
LRUアルゴリズムを使用して有効期限が設定されたキーを削除する
つまり、TTLが設定されていないキーは揮発性ではないため、削除されませんが、TTLが設定されているキーは、最近使用されていない順序で削除されます。
実際には、volatile-lruがデフォルトのポリシーであるため、メモリがいっぱいになったときに失っても構わないと思っているキーにTTLが設定されていることを確認するだけです。
編集:バージョン3.0以降、デフォルトのエビクションポリシーは「noeviction」です。 (変更ログ)