sql >> データベース >  >> NoSQL >> Redis

期限切れのキーをredisはどのように使用しますか?

    つまり、redisオブジェクトごとに有効期限があります。オブジェクトを期限切れに設定しない限り、その時間は「決して」ありません。

    現在、呼気メカニズム自体は半遅延です。遅延有効期限とは、オブジェクトが読み取られるまで実際に有効期限が切れないことを意味します。オブジェクトを読み取るときは、有効期限のタイムスタンプを確認し、過去の場合は何も返さず、オブジェクトにアクセスしている間にオブジェクトを削除します。ただし、問題は、キーに触れない場合、理由もなくメモリを消費することです。

    そのため、Redisはランダムなアクティブな有効期限の2番目のレイヤーを追加します。常にランダムなキーを読み取るだけで、期限切れのキーに触れると、レイジーメカニズムに基づいて削除されます。これは期限切れの動作には影響せず、期限切れのキーの「ガベージコレクション」を追加するだけです。

    もちろん、実際の実装はこれよりも複雑ですが、これが主なアイデアです。

    詳細については、http://redis.io/commands/expire

    をご覧ください。

    また、アクティブな有効期限サイクルのソースコードは次の場所にあります:https://github.com/antirez/redis/blob/a92921da135e38eedd89138e15fe9fd1ffdd9b48/src/expire.c#L98



    1. mongodbの利点はスキーマがないことであると想定されているのに、なぜmongooseはスキーマを使用するのですか?

    2. Ubuntu 16.04/18.04へのRedisのインストール

    3. MongoDB $ atanh

    4. セットのRedisのスコアとランキング機能のユースケース