ホームページ  >  記事  >  バックエンド開発  >  php redis 任意の設定時間

php redis 任意の設定時間

coldplay.xixi
coldplay.xixiオリジナル
2020-10-08 14:47:352374ブラウズ

php Redis で時間を設定する方法: 1. 生存時間をキャンセルし、キーの生存時間を永続的に設定します。これは PERSIST です。コードは [PERSIST session:captcha]; 2. TTL を使用して、キーの生存時間。コマンド、コードは [TTL session:captcha] です。

php redis 任意の設定時間

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。