php Redis で時間を設定する方法: 1. 生存時間をキャンセルし、キーの生存時間を永続的に設定します。これは PERSIST です。コードは [PERSIST session:captcha]; 2. TTL を使用して、キーの生存時間。コマンド、コードは [TTL session:captcha] です。
php redis の時間設定方法:
Redis は、生存時間が指定されていない場合に、キーの生存時間を提供します。を指定すると、生存時間は永続的になります。 Redis は、時間が経過するとこのキーを自動的に削除します。 EXPIRE コマンドを使用できます。時間の単位は秒です。キーの生存時間が制限されている場合、SET キーが再割り当てされると、キーは再び永続的に設定されます:
SET session:captcha sd2a EXPIRE session:captcha 600
生存期間をキャンセルするキーの有効期間が永続に設定されており、これは PERSIST:
PERSIST session:captcha
TTL コマンドを使用してキーの有効期間を表示します。-1 は永続、または有効期限が切れると削除されることを意味します。
TTL session:captcha
Redis の INCR、LPUSH、HSET、ZREM およびその他のコマンドでは、生存時間は変更されません。
ミリ単位で正確に時間を管理したい場合はPEXPIREが必要で、残り時間を確認するにはPTTLを使用します。
有効期限が切れる秒数ではなく、有効期限を指定したい場合はどうすればよいでしょうか? EXPIREAT と PEXPIREAT が必要です。 EXPIREAT のパラメータは有効期限のタイムスタンプ (秒)、PEXPIREAT のパラメータはタイムスタンプの有効期限 (ミリ秒) です。
SET session:captcha sd2a EXPIREAT session:captcha 1399902009 PEXPIREAT session:captcha 1399902009000
アプリケーション シナリオ 1: アクセス頻度制限: 各ユーザーを 1 分に制限します。 10ページを閲覧します。疑似コードは次のとおりです。
$isExists = EXISTS limit:user1:192.168.1.2 if($isExists){ $num = INCR limit:user1:192.168.1.2 if($num > 10){ print '超过限制' exit } }else{ MULTI INCR limit:user1:192.168.1.2 EXPIRE limit:user1:192.168.1.2 60 EXEC }
トランザクションを使用する理由は、参加後、INCR limit:user1:192.168.1.2 を実行した後、EXPIRE limit:user1:192.168.1.2 60 を実行する前に、クライアントが閉じています。その後、キーと値は永続化されます。そして、このIDは一生に10回しかアクセスできません。それは残念です。
プログラミング学習について詳しく知りたい方は、php training のコラムに注目してください!
以上がphp redis 任意の設定時間の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。