Redis は、高性能かつ軽量という優れた機能により、インターネット企業の標準キャッシュとなっていますが、主に Redis が頻繁に使用されるシナリオでは、カスタム コマンドを追加したい場合があります。 , 駆け込み購入のシナリオのように、複数の Redis コマンドのトランザクション性を保証する必要があるため、適切なアトミック性が保証されていない場合、データの不整合の問題が発生しやすくなります。
正式なトランザクションプランは与えられていますが、次のステップに進む前に特定のコマンドの戻り値に基づいて判断する必要がある場合、トランザクションプランでは対応できません。
今日は、実際的なケースを使用して Redis コマンドを追加する方法を説明します。このコマンドは主にアンチスワイプ シナリオで使用されます:
特定の IP またはこのコマンドを使用しない場合、解決策は次のようになります:
最初に incr を実行し、次にそれが 1 であるかどうかを判断します。1 である場合は、有効期限を設定します。高い同時実行中に incr リクエストを開始した最初のクライアントがハングアップしても、キーは期限切れにならないことがわかります。
今日記述するコマンドは、このトランザクションを保証するために使用されます。サーバー側は、キーの値が 1 の場合に有効期限が設定されていることを確認します。
コマンドの使用法は次のとおりです:
incexpire key expireTime maxNum
key: 処理するキー
expireTime: 有効期限 (秒単位) 10 と書くと、キーの有効期限は 10 秒です。;
maxNum: 増加が止まるまで増加する量を示します。10 に設定すると、返される最大値は 11 になります。11 が返されるということは、それを超えたことを意味します;
2. コマンドの作成
1. Redis コードのダウンロード
この記事で使用されている Redis のバージョンは 3.2.11;
コードをダウンロードコマンドコードの記述と追加
1) src/server.c の redisCommandTable 構造に新しいコマンドを追加します
git clone https://github.com/antirez/redis
redisCommandTable は配列で、各項目は redis コマンドを表し、1 つ目はコマンドを表します 2 つ目は実際の処理関数、3 つ目はパラメータの数です その他については詳しく説明しません。
2) src/server.h に関数宣言を追加します:
struct redisCommand redisCommandTable[] = {
3) 次に、ファイルを ljh.c (自分で名前を付けます) として追加し、次のコードを追加します。
void incrExpireCommand(client *c);4) 新しいファイル ljh.o を src/Makefile に追加します
#include "server.h"実行結果は次のとおりです
実行後に確認できます。 key1 が 11 に増加します。それ以上増加しなくなり、10 秒後に再び 1 になります。
redis 入門チュートリアル
columnを参照してください。
以上がredisコマンドを追加する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

Redisのデータベースメソッドには、メモリ内データベースとキー価値ストレージが含まれます。 1)Redisはデータをメモリに保存し、速く読み取り、書き込みます。 2)キー価値のペアを使用してデータを保存し、キャッシュやNOSQLデータベースに適したリスト、コレクション、ハッシュテーブル、注文コレクションなどの複雑なデータ構造をサポートします。

Redisは、高速パフォーマンス、リッチデータ構造、高可用性とスケーラビリティ、持続性能力、幅広いエコシステムサポートを提供するため、強力なデータベースソリューションです。 1)非常に速いパフォーマンス:Redisのデータはメモリに保存され、非常に速い読み取り速度と書き込み速度が高く、高い並行性と低レイテンシアプリケーションに適しています。 2)豊富なデータ構造:さまざまなシナリオに適したリスト、コレクションなど、複数のデータ型をサポートします。 3)高可用性とスケーラビリティ:マスタースレーブの複製とクラスターモードをサポートして、高可用性と水平スケーラビリティを実現します。 4)持続性とデータセキュリティ:データの整合性と信頼性を確保するために、データの持続性がRDBとAOFを通じて達成されます。 5)幅広い生態系とコミュニティのサポート:巨大なエコシステムとアクティブなコミュニティにより、

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コマンドを実行してクラスターを作成し、レプリカの数を指定します。クラスターにログインしてクラスター情報コマンドを実行して、クラスターステータスを確認します。作る


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

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

メモ帳++7.3.1
使いやすく無料のコードエディター

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

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