Redis とシェル スクリプトを使用して分散スケジュールされたタスク関数を開発する方法
Redis とシェル スクリプトを使用して分散スケジュール タスク関数を開発する方法
はじめに:
インターネット テクノロジの急速な発展に伴い、スケジュール タスク関数はさまざまな用途で使用されます。多くのシステムが非常に重要になっています。ただし、従来の単一マシンのスケジュールされたタスクには、同時実行性が高いシナリオではいくつかの問題があり、たとえば、タスクのスケジュールと実行が十分に柔軟ではなく、負荷分散やフォールト トレランスなどの要件に対応できません。これらの問題を解決するには、Redis およびシェル スクリプトを使用して分散スケジュールされたタスク関数を開発します。
1. Redis の概要
Redis は、文字列、リンク リスト、ハッシュ テーブル、セット、順序付きセット、等高い同時実行性、高いパフォーマンス、高可用性という特徴があり、キャッシュやメッセージ キューなどのシナリオで広く使用されています。
2. シェル スクリプトの概要
シェル スクリプトは、一連のコマンドを実行できるコマンド インタプリタです。柔軟で使いやすく、他の言語やツールと組み合わせて使用できるため、開発、システム管理、その他のシナリオでよく使用されるツールです。
3. Redisとシェルスクリプトを組み合わせて分散スケジュールタスク機能を開発するという考え方
- Redisのオーダードセットデータ構造を通じてタスクを格納し、実行時間を利用するタスクのスコアをスコアとして使用し、実行時間が早いタスクをソート セットの先頭に配置します。
- Redis から実行対象のタスクを定期的に取得し、タスクの特定のロジックを実行するシェル スクリプトを記述します。
- シェル スクリプトをスケジュールされたタスクとして設定する crontab コマンドを使用してスケジュールされた実行を実装すると、スクリプトが特定の間隔で Redis 内のタスクをポーリングできるようになります。
- 同じシェル スクリプトを複数のマシンにデプロイし、Redis をタスク スケジュール センターとして使用して、分散スケジュールされたタスク機能を実装します。
5. 特定のコード例
次は、Redis スクリプトとシェル スクリプトを使用して分散スケジュール タスク関数を実装するコード例です:
-
シェル スクリプト部分 :
#!/bin/bash # Redis连接配置 REDIS_HOST="localhost" REDIS_PORT=6379 REDIS_PASS="" # 从Redis中获取待执行的任务 task=$(redis-cli -h $REDIS_HOST -p $REDIS_PORT -a $REDIS_PASS zrangebyscore tasks 0 $(date +%s) limit 0 1) # 执行任务的具体逻辑 if [ -n "$task" ]; then # $task 是获取到的任务信息,可以进行相应的处理 # 在这里写你的业务逻辑代码 fi
ログイン後にコピー上記のスクリプトは、まず Redis サーバーに接続し、zrangebyscore コマンドを使用してタスクの順序付けされたセットから実行するタスク (現在時刻より前の実行時刻を持つタスク) を取得し、実行します。必要に応じて対応する処理を行います。
- Redis 部分:
Redis では、次のコマンドを使用してタスクを追加し、実行するタスクをクエリできます:
$ redis-cli -h localhost -p 6379 -a password > zadd tasks <score> <task> > zrangebyscore tasks 0 <timestamp> limit 0 1
その中で、 < ;score>
はタスクの実行時間を表します。 <task></task>
はタスクの具体的な内容を表します。 <timestamp></timestamp>
は現在時刻のタイムスタンプを表します。
6. 概要
Redis とシェル スクリプトを使用して分散スケジュールされたタスク機能を開発すると、タスクのスケジュールと実行の効率が向上し、分散環境での負荷分散とフォールト トレランスを実現できます。 Redis とシェル スクリプトを合理的に利用することで、システム要件をより適切に満たし、ビジネスの安定性と信頼性を向上させることができます。この記事が、分散スケジュールされたタスク関数を開発する際の皆様のお役に立てれば幸いです。
以上がRedis とシェル スクリプトを使用して分散スケジュールされたタスク関数を開発する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

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

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











1. [スタート]メニューを起動し、[cmd]と入力し、[コマンドプロンプト]を右クリックし、[管理者として実行]を選択します。 2. 次のコマンドを順番に入力します (注意してコピーして貼り付けてください): SCconfigwuauservstart=auto、Enter キーを押す SCconfigbitsstart=auto、Enter キーを押す SCconfigcryptsvcstart=auto、Enter キーを押す SCconfigtrustedinstallerstart=auto、Enter キーを押す SCconfigwuauservtype=share、Enter キーを押す netstopwuauserv 、enter netstopcryptS を押す

GolangAPI のキャッシュ戦略により、パフォーマンスが向上し、サーバーの負荷が軽減されます。一般的に使用される戦略は、LRU、LFU、FIFO、TTL です。最適化手法には、適切なキャッシュ ストレージの選択、階層型キャッシュ、無効化管理、監視とチューニングが含まれます。実際には、データベースからユーザー情報を取得する API を最適化するために LRU キャッシュが使用されます。それ以外の場合は、データベースからデータを取得した後にキャッシュを更新できます。

PHP 開発では、キャッシュ メカニズムにより、頻繁にアクセスされるデータがメモリまたはディスクに一時的に保存され、データベース アクセスの数が削減され、パフォーマンスが向上します。キャッシュの種類には主にメモリ、ファイル、データベース キャッシュが含まれます。キャッシュは、組み込み関数またはサードパーティのライブラリ (cache_get() や Memcache など) を使用して PHP に実装できます。一般的な実用的なアプリケーションには、データベース クエリ結果をキャッシュしてクエリ パフォーマンスを最適化したり、ページ出力をキャッシュしてレンダリングを高速化したりすることが含まれます。キャッシュ メカニズムにより、Web サイトの応答速度が効果的に向上し、ユーザー エクスペリエンスが向上し、サーバーの負荷が軽減されます。

Redis キャッシュを使用すると、PHP 配列ページングのパフォーマンスを大幅に最適化できます。これは、次の手順で実現できます。 Redis クライアントをインストールします。 Redisサーバーに接続します。キャッシュ データを作成し、データの各ページをキー「page:{page_number}」を持つ Redis ハッシュに保存します。キャッシュからデータを取得し、大規模な配列での高コストの操作を回避します。

まず、システム言語を簡体字中国語表示に設定して再起動する必要があります。もちろん、以前に表示言語を簡体字中国語に変更したことがある場合は、この手順をスキップできます。次に、レジストリ regedit.exe の操作を開始し、左側のナビゲーション バーまたは上部のアドレス バーで HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlNlsLanguage に直接移動し、InstallLanguage キーの値と Default キーの値を 0804 に変更します (英語に変更する場合)。まずシステムの表示言語を en-us に設定し、システムを再起動してから、すべてを 0409 に変更します) この時点でシステムを再起動する必要があります。

1. まず、デスクトップ上の[このPC]アイコンをダブルクリックして開きます。 2. 次に、マウスの左ボタンをダブルクリックして [C ドライブ] に入ります。システム ファイルは通常、自動的に C ドライブに保存されます。 3. 次に、C ドライブで [windows] フォルダーを見つけ、ダブルクリックしてに入ります。 4. [windows]フォルダーに入ったら、[SoftwareDistribution]フォルダーを見つけます。 5. 入力後、win11 のダウンロード ファイルとアップデート ファイルがすべて含まれている [ダウンロード] フォルダーを見つけます。 6. これらのファイルを削除したい場合は、このフォルダー内で直接削除してください。

Redis は、高性能のキー/値キャッシュです。 PHPRedis 拡張機能は、Redis サーバーと対話するための API を提供します。 Redis に接続し、データを保存および取得するには、次の手順を使用します。 接続: Redis クラスを使用してサーバーに接続します。ストレージ: set メソッドを使用してキーと値のペアを設定します。取得: get メソッドを使用してキーの値を取得します。

さまざまな PHP バージョンで関数のパフォーマンスを最適化する方法には、分析ツールを使用して関数のボトルネックを特定すること、オペコード キャッシュを有効にするか外部キャッシュ システムを使用すること、型アノテーションを追加してパフォーマンスを向上させること、および PHP バージョンに応じて適切な文字列連結およびソート アルゴリズムを選択することなどが含まれます。
