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 およびその他のコマンドでは、生存時間は変更されません。
(推奨: redis ビデオ チュートリアル )
時間をミリ単位で正確に管理したい場合は、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回しかアクセスできません。それは残念です。
アプリケーション シナリオ 2: キャッシュを実装します。 10,000 ユーザーのランキングの計算は非常にリソースを消費するため、最初の計算後にデータをキーに保存し、このキーの生存時間を設定します。 1 時間後に生存時間が経過するとキーが削除され、新しいランキングが再度計算されて一時キーが保存されます。
//战斗排行榜 $rank = GET cache:rank:fight if not $rank $rank = 计算排名() MULTI SET cache:rank:fight $rank EXPIRE cache:rank:fight 3600 EXEC
Redis はメモリに保存されたデータベースです。メモリがキャッシュでいっぱいの場合、Redis は構成ファイルに基づいて特定のキャッシュを削除します。設定項目はRedis設定ファイルのmaxmemoryパラメータで、単位はバイトです。この制限を超えると、構成ファイルの maxmemory-policy パラメータに従って不要なキーが削除されます。 maxmemory-policy のオプションのルールは次の 4 つです:
1. volatile-lru: LRU アルゴリズムを使用してキー (生存時間が設定されたキー) を削除します。
2. allkey-lru: LRU アルゴリズムを使用してキーを削除します。
3. Volatile-random: キーをすぐに削除します (有効期間が設定されたキー)。
4. allkey-random: キーをすぐに削除します。
5. volatile-ttl: 有効期限が近づいているキーを削除します。すべてのキーを走査して期限切れになりそうなキーを削除するのではなく、一度に N 個のキーを取り出し、その N 個のキーのうち期限切れになりそうなキーを削除することです。 Nって何ですか?設定ファイル。
6. Nevication: 削除しないでください。エラーを返します。
Redis はキーの有効期限を設定します - EXPIRE コマンド
EXPIRE key seconds
指定されたキーの生存時間を設定します。キーの有効期限が切れると (生存時間は 0)、自動的に削除されます。 。
Redis では、生存期間を持つキーを「揮発性」(揮発性) と呼びます。
ライフタイムを削除するには、DEL コマンドを使用してキー全体を削除するか、SET および GETSET コマンドで上書きします。これは、コマンドがライフタイムを持つキーのみを変更 (変更) する場合、値がキーが新しいキー値に置き換えられても、有効期間は変更されません。
たとえば、キーに対して INCR コマンドを実行したり、リストに対して LPUSH コマンドを実行したり、ハッシュ テーブルに対して HSET コマンドを実行したりしても、これらの操作によってキー自体の生存時間は変更されません。
一方、RENAME を使用してキーの名前を変更した場合、名前を変更したキーの生存時間は名前変更前と同じになります。
RENAME コマンドのもう 1 つの可能性は、有効期間を持つキーの名前を有効期間を持つ another_key に変更しようとすることです。このとき、古い another_key (およびその有効期間) は削除され、古いキーはしたがって、新しい another_key の生存時間は元のキーと同じになります。
PERSIST コマンドを使用すると、キーを削除せずにキーの有効期間を削除でき、キーを再び「永続的」キーにできるようになります。
生存時間の更新
すでに生存時間が設定されているキーに対して EXPIRE コマンドを実行すると、新しく指定した生存時間で古い生存時間が置き換えられます。
有効期限の精度
Redis 2.4 バージョンでは、有効期限の遅延は 1 秒以内です。つまり、キーの有効期限が切れている場合でも、有効期限が切れる可能性があります。期限切れ後も 1 秒以内にアクセスできますが、新しい Redis 2.6 バージョンでは、遅延が 1 ミリ秒未満に短縮されます。
Redis 2.1.3 より前の相違点
Redis 2.1.3 より前のバージョンでは、生存期間を指定してキーを変更すると、キー全体が削除され、この動作が発生します。これは当時のレプリケーション層の制限によるものでしたが、この制限は現在修正されています。利用可能なバージョン:
>= 1.0.0
時間計算量:
O(1)
戻り値:
设置成功返回 1 。
当 key 不存在或者不能为 key 设置生存时间时(比如在低于 2.1.3 版本的 Redis 中你尝试更新 key 的生存时间),返回 0 。
redis> SET cache_page "www.google.com" OK redis> EXPIRE cache_page 30 # 设置过期时间为 30 秒 (integer) 1 redis> TTL cache_page # 查看剩余生存时间 (integer) 23 redis> EXPIRE cache_page 30000 # 更新过期时间 (integer) 1 redis> TTL cache_page (integer) 29996
1、在小于2.1.3的redis版本里,只能对key设置一次expire。redis2.1.3和之后的版本里,可以多次对key使用expire命令,更新key的expire time。
2、redis术语里面,把设置了expire time的key 叫做:volatile keys。 意思就是不稳定的key。
3、如果对key使用set或del命令,那么也会移除expire time。尤其是set命令,这个在编写程序的时候需要注意一下。
4、redis2.1.3之前的老版本里,如果对volatile keys 做相关写入操作(LPUSH,LSET),和其他一些触发修改value的操作时,redis会删除 该key。
也就是说 :
redis.expire(key,expiration); redis.lpush(key,field,value); redis.get(key) //return null
redis2.1.3之后的版本里面没有这个约束,可以任意修改。
redis.set(key,100); redis.expire(key,expiration); redis.incr(key) redis.get(key) //redis2.2.2 return 101; redis<2.1.3 return 1;
5、redis对过期键采用了lazy expiration:在访问key的时候判定key是否过期,如果过期,则进行过期处理。其次,每秒对volatile keys 进行抽样测试,如果有过期键,那么对所有过期key进行处理。
更多redis知识请关注redis入门教程栏目。
以上がRedis の生存時間の設定の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

Redisの主な機能には、速度、柔軟性、豊富なデータ構造のサポートが含まれます。 1)速度:Redisはメモリ内データベースであり、読み取り操作はほとんど瞬間的で、キャッシュとセッション管理に適しています。 2)柔軟性:複雑なデータ処理に適した文字列、リスト、コレクションなど、複数のデータ構造をサポートします。 3)データ構造のサポート:さまざまなビジネスニーズに適した文字列、リスト、コレクション、ハッシュテーブルなどを提供します。

Redisのコア関数は、高性能のメモリ内データストレージおよび処理システムです。 1)高速データアクセス:Redisはデータをメモリに保存し、マイクロ秒レベルの読み取り速度と書き込み速度を提供します。 2)豊富なデータ構造:文字列、リスト、コレクションなどをサポートし、さまざまなアプリケーションシナリオに適応します。 3)永続性:RDBとAOFを介してディスクにデータを持続します。 4)サブスクリプションを公開:メッセージキューまたはリアルタイム通信システムで使用できます。

Redisは、次のようなさまざまなデータ構造をサポートしています。1。文字列、単一価値データの保存に適しています。 2。キューやスタックに適したリスト。 3.非重複データの保存に使用されるセット。 4。ランキングリストと優先キューに適した注文セット。 5。オブジェクトまたは構造化されたデータの保存に適したハッシュテーブル。

Redisカウンターは、Redisキー価値ペアストレージを使用して、カウンターキーの作成、カウントの増加、カウントの減少、カウントのリセット、およびカウントの取得など、カウント操作を実装するメカニズムです。 Redisカウンターの利点には、高速速度、高い並行性、耐久性、シンプルさと使いやすさが含まれます。ユーザーアクセスカウント、リアルタイムメトリック追跡、ゲームのスコアとランキング、注文処理などのシナリオで使用できます。

Redisコマンドラインツール(Redis-Cli)を使用して、次の手順を使用してRedisを管理および操作します。サーバーに接続し、アドレスとポートを指定します。コマンド名とパラメーターを使用して、コマンドをサーバーに送信します。ヘルプコマンドを使用して、特定のコマンドのヘルプ情報を表示します。 QUITコマンドを使用して、コマンドラインツールを終了します。

Redisクラスターモードは、シャードを介してRedisインスタンスを複数のサーバーに展開し、スケーラビリティと可用性を向上させます。構造の手順は次のとおりです。異なるポートで奇妙なRedisインスタンスを作成します。 3つのセンチネルインスタンスを作成し、Redisインスタンスを監視し、フェールオーバーを監視します。 Sentinel構成ファイルを構成し、Redisインスタンス情報とフェールオーバー設定の監視を追加します。 Redisインスタンス構成ファイルを構成し、クラスターモードを有効にし、クラスター情報ファイルパスを指定します。各Redisインスタンスの情報を含むnodes.confファイルを作成します。クラスターを起動し、CREATEコマンドを実行してクラスターを作成し、レプリカの数を指定します。クラスターにログインしてクラスター情報コマンドを実行して、クラスターステータスを確認します。作る

Redisのキューを読むには、キュー名を取得し、LPOPコマンドを使用して要素を読み、空のキューを処理する必要があります。特定の手順は次のとおりです。キュー名を取得します:「キュー:キュー」などの「キュー:」のプレフィックスで名前を付けます。 LPOPコマンドを使用します。キューのヘッドから要素を排出し、LPOP Queue:My-Queueなどの値を返します。空のキューの処理:キューが空の場合、LPOPはnilを返し、要素を読む前にキューが存在するかどうかを確認できます。

RedisクラスターでのZsetの使用:Zsetは、要素をスコアに関連付ける順序付けられたコレクションです。シャード戦略:a。ハッシュシャーディング:ZSTキーに従ってハッシュ値を分配します。 b。範囲シャード:要素スコアに従って範囲に分割し、各範囲を異なるノードに割り当てます。操作の読み取りと書き込み:a。読み取り操作:ZSetキーが現在のノードのシャードに属している場合、ローカルで処理されます。それ以外の場合は、対応するシャードにルーティングされます。 b。書き込み操作:Zsetキーを保持しているシャードに常にルーティングされます。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

WebStorm Mac版
便利なJavaScript開発ツール

SublimeText3 中国語版
中国語版、とても使いやすい

Dreamweaver Mac版
ビジュアル Web 開発ツール

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター
