ホームページ > バックエンド開発 > PHPチュートリアル > php+redis+mysq は高い同時実行性をどのように処理しますか (コード例)

php+redis+mysq は高い同時実行性をどのように処理しますか (コード例)

不言
リリース: 2023-04-03 16:26:01
オリジナル
2089 人が閲覧しました

この記事の内容は、php redis mysq が高同時実行をどのように処理するか (サンプルコード) に関するもので、一定の参考価値があります。必要な友人は参照してください。お役に立てば幸いです。

1. 実験環境
ubuntu、php、apache または nginx、mysql
2. 要件
これで、次のようなインターフェイスが提供されます。同時実行の量が比較的大きい場合、このインターフェイスは PHP で作成されます。その機能は、ユーザーの GET リクエストの名前フィールドを受信し、このフィールドを mysql に保存することです。次に、最初にデータを Redis キューに入れ、そしてその後、Redis がこれらのデータを定期的に mysql に転送できるようにします。
2. 実装手順
1. 新しいデータベース テストとデータ テーブル テストを作成します。テーブル作成ステートメントは次のとおりです。

1

2

3

CREATE TABLE `test` (

  `name` varchar(255) DEFAULT NULL

) ENGINE=InnoDB DEFAULT CHARSET=utf-8

ログイン後にコピー

1. / に新しいインデックスを作成します。 var/www/test.php の内容は以下の通りで、仮想ホストを設定してアクセスできるようにします。

1

2

3

4

5

6

7

8

<?php

$redis = new Redis();

$redis->connect('127.0.0.1', 6379);

try {

    $res $redis->LPUSH('name'$_REQUEST["name"]);

catch (Exception $e) {

    echo $e->getMessage();

}

ログイン後にコピー

2. 同じディレクトリに新しい redis.php ファイルを作成し、データベースのパスワードやその他の設定の変更に注意してください。内容は次のとおりです

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

<?php

$redis = new Redis();

$redis->pconnect('127.0.0.1',6379);

$mysql=mysqli_connect("localhost","root","bnm");

mysqli_select_db($mysql,"test"or die("不能选择数据库");

if(!$mysql){

    die("连接失败");

}

while (true){

    try{

        $value $redis->LPOP('name');

        if(!$value){

            echo "等待";

        }else{

            $sql="insert into test(name) values ('".$value."')";

            $result=mysqli_query($mysql,$sql);

            if($result&&mysqli_affected_rows($mysql)>0){

                echo "插入成功";

            }else{

                echo "插入失败:".mysqli_error($mysql);

            }

        }

    }catch(Exception $e){

        echo $e->getMessage();

    }

    sleep(1);

}

ログイン後にコピー

3. redis を実行します.php スクリプト ファイル

1

nohup php redis.php &

ログイン後にコピー

4.index.php スクリプト ファイル (http://192.168.116.128/?name=33 など) にアクセスし、データが mysql に入力されているかどうかを確認します。

おすすめ関連記事:

PHP の配列関数の演算とは何ですか? php 配列関数のアプリケーション (コード付き)

thinkphp5 フレームワークと Android 実装 QR コード生成コード

以上がphp+redis+mysq は高い同時実行性をどのように処理しますか (コード例)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート