インターネット技術の継続的な発展に伴い、Web アプリケーションの機能と規模は拡大し続けており、データベース アクセスに対する要件もますます高くなっています。このため、開発者は、Web アプリケーションのパフォーマンスとスケーラビリティを向上させるための新しいデータベース ソリューションを探すようになりました。この記事では、PHP 言語と Cassandra データベースを使用して、高性能でスケーラブルな Web アプリケーションを構築する方法を紹介します。
1. Cassandra データベースとは
Cassandra はオープンソースの分散型 NoSQL データベース システムで、当初は Facebook によって開発され、現在は Apache Foundation によって保守されています。そのコンセプトは、高いパフォーマンスを確保しながら、データの可用性、スケーラビリティ、耐障害性を考慮することです。
Cassandra データベースの特徴は次のとおりです。
2. PHP は Cassandra データベースに接続します
Cassandra データベースはさまざまなクライアント API をサポートしますが、その中で PHP および CQL ステートメントは最も便利な方法の 1 つです。 CQL は Cassandra Query Language の略称で、SQL に似ていますが、より豊富なデータ型を持ち、複雑な分散クエリ操作をサポートします。
以下では、PHP の cassandra-driver を使用して Cassandra データベースに接続し、操作します。
PHP の cassandra-driver は、composer を介してインストールできます。コマンド ラインを開き、プロジェクトのルート ディレクトリを入力し、次のコマンドを実行します:
composer require datastax/php-driver
接続するにはホストとポート番号を知っている必要があります。 Cassandra に接続するためのサンプル コードは次のとおりです:
<?php //连接Cassandra $cluster = Cassandra::cluster() ->withContactPoints('127.0.0.1') ->withPort(9042) ->build(); $session = $cluster->connect(); ?>
上記のコードは、cluster() メソッドを通じて Cassandra サービス接続ポイントを作成し、connect() メソッドを通じてそれに接続します。このうち、127.0.0.1はCassandraサービスのIPアドレスを示し、9042はCassandraサービスのポート番号を示します。
CQL ステートメントは、Cassandra データベースと対話するために使用され、PHP の cassandra ドライバーを使用して CQL ステートメントを簡単に実行できます。以下は、CQL ステートメントを実行するためのサンプル コードです。
<?php //执行CQL语句 $cql = "SELECT * FROM mykeyspace.mytable WHERE id='123'"; $statement = new CassandraSimpleStatement($cql); $result = $session->execute($statement); ?>
上記のコードは、SimpleStatement クラスを使用して CQL クエリ ステートメントを作成し、execute() メソッドを使用してステートメントを実行し、クエリ結果を保存します。 $result 変数に。
Cassandra データベースは、高い柔軟性で JSON 形式のデータの挿入をサポートしています。以下はサンプル コードです。
<?php //插入数据 $cql = "INSERT INTO mykeyspace.mytable JSON '{"id": "123", "name": "Tom", "age": 18}'"; $statement = new CassandraSimpleStatement($cql); $session->execute($statement); ?>
上記のコードは、JSON 形式のデータを定義し、CQL ステートメントを通じて mykeyspace.mytable テーブルにそれを挿入します。
3. アプリケーション例
以下では、単純な Web アプリケーションを組み合わせて、PHP と Cassandra データベースを使用して高性能でスケーラブルなアプリケーションを構築する方法を示します。このサンプル アプリケーションは、ログインおよび登録機能を提供し、Cassandra データベースを使用してユーザー情報を保存します。
まず、ユーザー情報を保存するためのテーブルを Cassandra データベースに作成する必要があります。 CQL ステートメントの例を次に示します。
CREATE KEYSPACE mykeyspace WITH replication = {'class': 'SimpleStrategy', 'replication_factor': '1'} AND durable_writes = true; CREATE TABLE mykeyspace.users ( id text PRIMARY KEY, username text, email text, password text );
上記のコードは、「mykeyspace」という名前のキースペースを作成し、その中に「users」という名前のテーブルを作成します。テーブルには ID、ユーザー名、電子メール、パスワードの 4 つの列が含まれており、ID が主キーです。
ユーザー登録ページのサンプルコードです:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>User Registration</title> </head> <body> <h2>User Registration</h2> <form method="post" action="register.php"> <label for="username">Username:</label> <input type="text" name="username" id="username"><br> <label for="email">Email:</label> <input type="email" name="email" id="email"><br> <label for="password">Password:</label> <input type="password" name="password" id="password"><br> <input type="submit" name="submit" value="Register"> </form> </body> </html>
上記のコードは、3 の入力ボックスを作成します。入力ボックス ユーザー名、電子メール、パスワードの入力が必要な登録フォーム。
次に、ユーザー登録情報を Cassandra データベースに保存するために、register.php ファイルに PHP コードを記述する必要があります。
<?php //连接Cassandra $cluster = Cassandra::cluster() ->withContactPoints('127.0.0.1') ->withPort(9042) ->build(); $session = $cluster->connect(); //获取表单数据 $username = $_POST['username']; $email = $_POST['email']; $password = $_POST['password']; //生成一个唯一的ID $id = uniqid(); //将注册信息插入到Cassandra表中 $cql = "INSERT INTO mykeyspace.users (id, username, email, password) VALUES (?, ?, ?, ?)"; $statement = new CassandraSimpleStatement($cql); $session->execute($statement, array($id, $username, $email, $password)); //跳转到登录页面 header('Location: login.php'); ?>
上記のコードは、フォームから送信されたデータを取得し、一意のID。次に、ユーザー情報を Cassandra テーブルに挿入し、ログイン ページにジャンプします。
ユーザー ログイン ページのサンプル コード:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>User Login</title> </head> <body> <h2>User Login</h2> <form method="post" action="login.php"> <label for="username">Username:</label> <input type="text" name="username" id="username"><br> <label for="password">Password:</label> <input type="password" name="password" id="password"><br> <input type="submit" name="submit" value="Login"> </form> </body> </html>
上記のコードは、2 の入力ボックスを作成します。入力ボックスのログインフォーム。
次に、Cassandra データベース内のユーザー ログイン情報を確認するために、login.php ファイルに PHP コードを記述する必要があります。
<?php //连接Cassandra $cluster = Cassandra::cluster() ->withContactPoints('127.0.0.1') ->withPort(9042) ->build(); $session = $cluster->connect(); //获取表单数据 $username = $_POST['username']; $password = $_POST['password']; //查询用户信息 $cql = "SELECT * FROM mykeyspace.users WHERE username=? AND password=?"; $statement = new CassandraSimpleStatement($cql); $result = $session->execute($statement, array($username, $password)); //验证用户信息 if (count($result) > 0) { //登录成功 header('Location: home.php'); } else { //登录失败 echo 'Login failed.'; } ?>
上記のコードは、フォーム送信からユーザー名とパスワードを取得します。そしてそれを CQL ステートメントに渡して、Cassandra テーブルからユーザー情報をクエリします。クエリ結果が空でない場合、ログインは成功しますが、それ以外の場合、ログインは失敗します。
4.概要
Cassandra データベースは、高いパフォーマンス、スケーラビリティ、耐障害性、データの一貫性を備えた優れた NoSQL データベース システムであり、大規模な Web アプリケーションのアクセス要件を処理するのに適しています。 PHP の cassandra-driver は、Cassandra データベースに接続して操作するための API を提供し、高性能でスケーラブルな Web アプリケーションの開発を容易にします。この記事では、開発者に参考となることを目的として、サンプル プログラムを通じて PHP と Cassandra データベースを使用して簡単なユーザー登録およびログイン システムを構築する方法を示します。
以上がPHP および Cassandra データベース アプリケーションの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。