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

私のredisキーは期限切れになりません

    「...」を実行しているので、確実に言うのは難しいですが、その部分でmykeyを設定していると思います。これにより、有効期限が効果的に削除されます。

    EXPIREマニュアルから

    タイムアウトは、キーがDELコマンドを使用して削除された場合、またはSETまたはGETSETコマンドを使用して上書きされた場合にのみクリアされます

    また、TTLからの-1応答について

    戻り値

    整数応答:秒単位のTTL、またはキーが存在しないかタイムアウトがない場合は-1。

    編集:この動作はRedis2.8で変更されていることに注意してください

    Redis 2.8以降、エラーが変更された場合の戻り値は次のとおりです。
    キーが存在しない場合、コマンドは-2を返します。
    キーが存在するが、有効期限が関連付けられていない場合、コマンドは-1を返します。

    つまり、キーが存在する場合、それは永続的であるように見えます。つまり、有効期限が設定されていません。

    編集:REDISスレーブサーバーでキーを作成すると、これを再現できるようです。通常、スレーブでローカルにキーを作成しないため、スレーブはマスター入力なしでキーを削除しません。これはここに当てはまりますか?

    ただし、マスターに接続されたスレーブはキーを個別に期限切れにすることはありませんが(ただし、マスターからのDELが来るのを待ちます)、データセットに存在する期限切れの完全な状態を取得するため、スレーブがマスターに選出されると、キーを独立して期限切れにし、完全にマスターとして機能することができます。




    1. MongoDBでのトランザクション

    2. PyMongoを使用した正規表現クエリの実行

    3. マングース-グループ化してデータを入力する方法は?

    4. Python-redis keys()は、文字列ではなくバイトオブジェクトのリストを返します