ホームページ  >  記事  >  バックエンド開発  >  PHP および Cassandra データベース アプリケーション

PHP および Cassandra データベース アプリケーション

WBOY
WBOYオリジナル
2023-06-19 16:34:031041ブラウズ

インターネット技術の継続的な発展に伴い、Web アプリケーションの機能と規模は拡大し続けており、データベース アクセスに対する要件もますます高くなっています。このため、開発者は、Web アプリケーションのパフォーマンスとスケーラビリティを向上させるための新しいデータベース ソリューションを探すようになりました。この記事では、PHP 言語と Cassandra データベースを使用して、高性能でスケーラブルな Web アプリケーションを構築する方法を紹介します。

1. Cassandra データベースとは

Cassandra はオープンソースの分散型 NoSQL データベース システムで、当初は Facebook によって開発され、現在は Apache Foundation によって保守されています。そのコンセプトは、高いパフォーマンスを確保しながら、データの可用性、スケーラビリティ、耐障害性を考慮することです。

Cassandra データベースの特徴は次のとおりです。

  1. 分散ストレージ: Cassandra は分散ストレージを使用し、データは複数のノードに保存され、各ノード間のデータが確実に保存されます。 冗長バックアップ信頼性と可用性が向上します。
  2. 列ストレージ: Cassandra は列ストレージを使用し、柔軟性を高めるためにデータの各行を「列ファミリー」として保存します。
  3. データの一貫性: Cassandra は、クラスター内の自動データ複製を通じて高可用性とデータ回復を提供し、調整可能な一貫性レベルを通じてさまざまなパフォーマンス要件を達成できます。
  4. スケーラビリティ: Cassandra は動的なノードの追加と削除をサポートしており、効率的に水平方向に拡張できます。
  5. 高パフォーマンス: Cassandra は、負荷分散戦略を通じて同時実行性を向上させながら、非同期書き込みとインデックス作成を通じて読み取りおよび書き込みのパフォーマンスを向上させます。

2. PHP は Cassandra データベースに接続します

Cassandra データベースはさまざまなクライアント API をサポートしますが、その中で PHP および CQL ステートメントは最も便利な方法の 1 つです。 CQL は Cassandra Query Language の略称で、SQL に似ていますが、より豊富なデータ型を持ち、複雑な分散クエリ操作をサポートします。

以下では、PHP の cassandra-driver を使用して Cassandra データベースに接続し、操作します。

  1. cassandra-driver のインストール

PHP の cassandra-driver は、composer を介してインストールできます。コマンド ラインを開き、プロジェクトのルート ディレクトリを入力し、次のコマンドを実行します:

composer require datastax/php-driver
  1. Cassandra に接続

接続するにはホストとポート番号を知っている必要があります。 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サービスのポート番号を示します。

  1. CQL ステートメントの実行

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 変数に。

  1. データの挿入

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 データベースを使用してユーザー情報を保存します。

  1. 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 が主キーです。

  1. ユーザー登録機能の実装

ユーザー登録ページのサンプルコードです:

<!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 テーブルに挿入し、ログイン ページにジャンプします。

  1. ユーザー ログイン関数の実装

ユーザー ログイン ページのサンプル コード:

<!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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。