検索
ホームページデータベースRedis同時リクエストを防ぐための Redis アトミックカウンターの増加について

次のコラム Redis チュートリアル では、同時リクエストを防ぐための Redis アトミック カウンター incr について紹介します。 #######################################I.はじめに######## #フラッシュ セール活動など、大量の同時リクエストに制限がある一部のシステムや機能、または返される現在のユーザー数が多すぎる Web サイトでは、後でもう一度お試しください。これらは同時にリクエストの数を制限し、通常はバックグラウンド システムを保護し、過剰なトラフィックの影響によるシステムのクラッシュを防ぐために使用されます。システムクラッシュの結果に関しては、メンテナにとっては、一部のリクエストを拒否する方が明らかに受け入れられます。

あらゆる種類の電流制限の中でも、システム自身で設計したロック機構を備えたカウンターに加えて、Redis を使用して実装することが効率的で安全かつ便利な方法であることは明らかです。

同時リクエストを防ぐための Redis アトミックカウンターの増加について

2. Incr コマンド

Redis Incr コマンドは、key に格納されている数値を 1 つ増やします。 key が存在しない場合は、まず key の値が 0 に初期化されてから、INCR 演算が実行されます。 値に間違った型が含まれている場合、または文字列型の値が数値として表現できない場合は、エラーを返します。 この演算の値は、64 ビット (ビット) の符号付きデジタル表現に制限されます。

例:

127.0.0.1:6379> set num 10
OK
127.0.0.1:6379> incr num
(integer) 11
127.0.0.1:6379> get num    # 数字值在 Redis 中以字符串的形式保存
"11"
注: Redis には整数データを表す明示的な型がないため、この操作は文字列操作です。

この操作を実行すると、キーに対応して格納された文字列が 10 進数の 64 ビット符号付き整数データに解析されます。
実際、Redis は内部的に整数表現 (整数表現) を使用して対応する整数値を格納するため、このタイプの文字列値は実際には整数に格納され、整数を格納するための文字列表現 (文字列表現) はありません。引き起こされた。

3. 使用シナリオ


1. カウンター


使用方法のアイデアは、関連する操作があるたびに、 incr コマンドを Redis サーバーに送信します。

たとえば、これはシナリオです。Web アプリケーションがあり、各ユーザーが毎日この Web サイトにアクセスする回数を記録したいと考えています。

Web アプリケーションは、ユーザー ID と現在時刻を表す文字列をキーとして連結し、ユーザーがこのページにアクセスするたびにこのキーに対して incr コマンドを実行するだけで済みます。

このシナリオには多くの拡張メソッドを含めることができます。

INCR コマンドと EXPIRE コマンドを組み合わせることで、指定された間隔内のユーザーの訪問数のみを記録するカウンターを実装できます。
クライアントは次のことができます。 pass GETSET コマンドは現在のカウンタ値を取得し、それを 0 にリセットします

DECR や INCRBY などのアトミックな増減コマンドにより、ユーザーの操作に応じて特定の値を増減させることができます。 、ユーザーのゲーム スコアを計算する必要があります。リアルタイム制御では、スコアが増減する可能性があります。

2. 速度リミッター

速度リ​​ミッターは、特定の操作の実行速度を制限できる特別なシナリオです。 従来の例は、特定のパブリック API に対するリクエストの数を制限することです。

次の問題を解決したいとします。API の IP ごとのリクエスト数を 1 秒あたり 10 回以下に制限します。

この問題は、incr コマンドを使用する 2 つの方法で解決できます。

4. フロー制御の Java 実装



ここでは、Java の redis-incr の特性を利用して、1 分間に 100 リクエストのみを許可する制御を構築します。コード、キーは、redis に格納されている制御されたキーの値を表します。
rreeee

以上が同時リクエストを防ぐための Redis アトミックカウンターの増加についての詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事はcsdnで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。
Redis:その目的と主要なアプリケーションを発表しますRedis:その目的と主要なアプリケーションを発表しますMay 03, 2025 am 12:11 AM

Redisisanopen-Source、In-MemoryDatastructurestoreStoreSadatabase、Cache、AndmessageBroker、ExcellingInspeedandversatility.ItisisWidely-susederCaching、Real-Timeanalytics、Session Management、AndleaderboardsdueTotutsuptorututrututrututruturturturturturturesturesaddataacys

Redis:キー価値データストアのガイドRedis:キー価値データストアのガイドMay 02, 2025 am 12:10 AM

Redisは、データベース、キャッシュ、メッセージブローカーとして使用されるオープンソースメモリデータ構造ストレージであり、高速応答と高い並行性が必要なシナリオに適しています。 1.Redisはメモリを使用してデータを保存し、マイクロ秒の読み取り速度と書き込み速度を提供します。 2.文字列、リスト、コレクションなどのさまざまなデータ構造をサポートします。3。Redisは、RDBおよびAOFメカニズムを介してデータの持続性を実現します。 4.シングルスレッドモデルと多重化テクノロジーを使用して、リクエストを効率的に処理します。 5.パフォーマンス最適化戦略には、LRUアルゴリズムとクラスターモードが含まれます。

Redis:キャッシュ、セッション管理などRedis:キャッシュ、セッション管理などMay 01, 2025 am 12:03 AM

Redisの関数には、主にキャッシュ、セッション管理、その他の機能が含まれます。1)キャッシュ関数はメモリを介してデータを保存して読み取り速度を向上させ、eコマースWebサイトなどの高周波アクセスシナリオに適しています。 2)セッション管理関数は、分散システムでセッションデータを共有し、有効期限のあるメカニズムを通じて自動的にクレンジングします。 3)リアルタイムメッセージプッシュおよびマルチスレッドシステムおよびその他のシナリオに適した、パブリッシュサブスクライブモード、分散ロック、カウンターなどのその他の機能。

Redis:そのコア機能と利点の調査Redis:そのコア機能と利点の調査Apr 30, 2025 am 12:22 AM

Redisのコア関数には、メモリストレージと持続性メカニズムが含まれます。 1)メモリストレージは、高性能アプリケーションに適した非常に高速な読み取り速度と書き込み速度を提供します。 2)永続性は、RDBとAOFによってデータが失われないことを保証し、選択はアプリケーションのニーズに基づいています。

Redisのサーバー側操作:提供するものRedisのサーバー側操作:提供するものApr 29, 2025 am 12:21 AM

redis'sserver-sideoperations offferidions and forexuctingcomplexoperationsontheserver.1)機能を調整することで、javascript、orredis'sscriptinglanguage、infulancingscalabilityandmantenmention

Redis:データベースまたはサーバー?役割を分かりやすいRedis:データベースまたはサーバー?役割を分かりやすいApr 28, 2025 am 12:06 AM

redisisbothadatabaseandaserver.1)asadatabase、itusesin memorystorage forfastaccess、理想的なforreal-timeapplicationsandcaching.2)asaserver、itupportspub/submessagingandaging andluascriptingforreal-communicationandserver-sideoperation。

Redis:NOSQLアプローチの利点Redis:NOSQLアプローチの利点Apr 27, 2025 am 12:09 AM

Redisは、高性能と柔軟性を提供するNOSQLデータベースです。 1)大規模データと高い並行性の処理に適したキー価値ペアを介してデータを保存します。 2)メモリストレージとシングルスレッドモデルは、速い読み取りと書き込みと原子性を確保します。 3)RDBおよびAOFメカニズムを使用してデータを持続し、高可用性とスケールアウトをサポートします。

Redis:そのアーキテクチャと目的を理解するRedis:そのアーキテクチャと目的を理解するApr 26, 2025 am 12:11 AM

Redisは、主にデータベース、キャッシュ、メッセージブローカーとして使用されるメモリデータ構造ストレージシステムです。そのコア機能には、シングルスレッドモデル、I/O多重化、持続メカニズム、複製、クラスタリング機能が含まれます。 Redisは、キャッシュ、セッションストレージ、メッセージキューのための実際のアプリケーションで一般的に使用されます。適切なデータ構造を選択し、パイプラインとトランザクションを使用し、監視とチューニングを使用することにより、パフォーマンスを大幅に改善できます。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

SublimeText3 中国語版

SublimeText3 中国語版

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

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。