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

redisスレーブのinfoコマンドによってリストされた期限切れのキーの数が私が見ているものと一致していません

    expires すでに期限切れのキーを含まない、期限切れになるTTLの既存のキーが含まれています。例(infoからの追加情報の省略あり) 簡潔にするためのコマンド):

    127.0.0.1:6379> flushall
    OK
    127.0.0.1:6379> SETEX mykey1 1000 "1"
    OK
    127.0.0.1:6379> SETEX mykey2 1000 "2"
    OK
    127.0.0.1:6379> SETEX mykey3 1000 "3"
    OK
    127.0.0.1:6379> info
    # Keyspace
    db0:keys=3,expires=3,avg_ttl=992766
    127.0.0.1:6379> SETEX mykey4 1 "4"
    OK
    127.0.0.1:6379> SETEX mykey5 1 "5"
    OK
    127.0.0.1:6379> info
    # Keyspace
    db0:keys=3,expires=3,avg_ttl=969898
    127.0.0.1:6379> keys *
    1) "mykey2"
    2) "mykey3"
    3) "mykey1"
    127.0.0.1:6379> 
    

    あなたの状況では、https://github.com/antirez/redis/issues/2861:

    に従って、スレーブのキーの有効期限について質問しています。

    スレーブのキーはアクティブに期限切れにならないため、avg_ttlは計算されません

    そしてhttps://groups.google.com/forum/#!topic/redis-db/NFTpdmpOPncによると:

    avg_ttlはスレーブで初期化されることはないため、その場所のメモリに任意の値が存在する可能性があります。

    したがって、info コマンドはスレーブで異なる動作をします。



    1. 純粋なRedisを使用して、パターンに一致する数百万のキーをアトミックに削除するにはどうすればよいですか?

    2. 配列から重複するエントリを削除するにはどうすればよいですか?

    3. docker-compose:コンテナ間のredis接続が拒否されました

    4. MongoDBサービスがFedoraで実行されていません