Maison  >  Article  >  développement back-end  >  Applications de bases de données PHP et Cassandra

Applications de bases de données PHP et Cassandra

WBOY
WBOYoriginal
2023-06-19 16:34:031042parcourir

Avec le développement continu de la technologie Internet, les fonctions et l'échelle des applications Web continuent de croître, et les exigences en matière d'accès aux bases de données sont également de plus en plus élevées. Cela a incité les développeurs à rechercher de nouvelles solutions de bases de données pour améliorer les performances et l'évolutivité des applications Web. Cet article explique comment utiliser le langage PHP et la base de données Cassandra pour créer des applications Web hautes performances et évolutives.

1. Qu'est-ce que la base de données Cassandra ?

Cassandra est un système de base de données NoSQL distribué open source, développé à l'origine par Facebook et maintenant maintenu par la Fondation Apache. Son concept est de prendre en compte la disponibilité des données, l'évolutivité et la tolérance aux pannes tout en garantissant des performances élevées.

Les fonctionnalités de la base de données Cassandra incluent :

  1. Stockage distribué : Cassandra utilise un stockage distribué et les données seront stockées de manière dispersée sur plusieurs nœuds pour garantir une sauvegarde redondante des données entre chaque nœud, améliorant ainsi la fiabilité et la disponibilité.
  2. Stockage de colonnes : Cassandra utilise le stockage de colonnes et stocke chaque ligne de données sous forme de "famille de colonnes" pour une plus grande flexibilité.
  3. Cohérence des données : Cassandra offre une haute disponibilité et une récupération des données grâce à la réplication automatique des données au sein du cluster, et peut répondre à différentes exigences de performances grâce à des niveaux de cohérence réglables.
  4. Évolutivité : Cassandra prend en charge l'ajout et la suppression dynamiques de nœuds et peut s'étendre efficacement horizontalement.
  5. Hautes performances : Cassandra améliore les performances de lecture et d'écriture grâce à l'écriture et à l'indexation asynchrones, tout en améliorant la simultanéité grâce à des stratégies d'équilibrage de charge.

2. PHP se connecte à la base de données Cassandra

La base de données Cassandra prend en charge une variété d'API client, parmi lesquelles les instructions PHP et CQL sont l'un des moyens les plus pratiques. CQL est l'abréviation de Cassandra Query Language, qui est similaire à SQL, mais possède des types de données plus riches et prend en charge des opérations de requête distribuées complexes.

Ci-dessous, nous utilisons le pilote cassandra de PHP pour connecter et exploiter la base de données Cassandra.

  1. Installer cassandra-driver

Le pilote cassandra de PHP peut être installé via composer. Ouvrez la ligne de commande, entrez le répertoire racine de votre projet et exécutez la commande suivante :

composer require datastax/php-driver
  1. Connectez-vous à Cassandra

La connexion à Cassandra nécessite de connaître l'hôte et le numéro de port auxquels se connecter. Voici un exemple de code pour se connecter à Cassandra. :

<?php
//连接Cassandra
$cluster = Cassandra::cluster()
    ->withContactPoints('127.0.0.1')
    ->withPort(9042)
    ->build();
$session = $cluster->connect();
?>

Le code ci-dessus passe La méthode cluster() crée un point de connexion au service Cassandra et s'y connecte via la méthode connect(). Parmi eux, 127.0.0.1 indique l'adresse IP du service Cassandra et 9042 indique le numéro de port du service Cassandra.

  1. Exécuter les instructions CQL

Les instructions CQL sont utilisées pour interagir avec la base de données Cassandra. Vous pouvez facilement exécuter des instructions CQL à l'aide du pilote cassandra de PHP. Voici un exemple de code pour exécuter une instruction CQL :

<?php
//执行CQL语句
$cql = "SELECT * FROM mykeyspace.mytable WHERE id='123'";
$statement = new CassandraSimpleStatement($cql);
$result = $session->execute($statement);
?>

Le code ci-dessus utilise la classe SimpleStatement pour créer une instruction de requête CQL, puis utilise la méthode execute() pour exécuter l'instruction et enregistre les résultats de la requête dans le fichier $result. variable.

  1. Insérer des données

La base de données Cassandra prend en charge l'insertion de données au format JSON avec une grande flexibilité. Voici un exemple de code :

<?php
//插入数据
$cql = "INSERT INTO mykeyspace.mytable JSON '{"id": "123", "name": "Tom", "age": 18}'";
$statement = new CassandraSimpleStatement($cql);
$session->execute($statement);
?>

Le code ci-dessus définit des données au format JSON et les insère dans la table mykeyspace.mytable via des instructions CQL.

3. Exemple d'application

Ci-dessous, nous combinons une application Web simple pour montrer comment utiliser la base de données PHP et Cassandra pour créer des applications évolutives hautes performances. Cet exemple d'application fournit des fonctionnalités de connexion et d'enregistrement et utilise une base de données Cassandra pour stocker les informations utilisateur.

  1. Créer une table Cassandra

Tout d'abord, nous devons créer une table dans la base de données Cassandra pour stocker les informations utilisateur. Voici un exemple d'instruction 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
);

Le code ci-dessus crée un espace de clés nommé "mykeyspace" et crée une table nommée "users" à l'intérieur. Le tableau contient 4 colonnes, à savoir id, username, email et password, où id est la clé primaire.

  1. Implémentation de la fonction d'enregistrement des utilisateurs

Ce qui suit est un exemple de code pour une page d'enregistrement d'utilisateur :

<!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>

Le code ci-dessus crée un formulaire d'inscription avec 3 zones de saisie, dans lesquelles le nom d'utilisateur, l'e-mail et le mot de passe sont requis.

Ensuite, nous devons écrire du code PHP dans le fichier register.php pour stocker les informations d'enregistrement de l'utilisateur dans la base de données Cassandra :

<?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');
?>

Le code ci-dessus récupère les données soumises à partir du formulaire et génère un identifiant unique. Insérez ensuite les informations utilisateur dans la table Cassandra et accédez à la page de connexion.

  1. Implémentation de la fonction de connexion utilisateur

Ce qui suit est un exemple de code pour une page de connexion utilisateur :

<!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>

Le code ci-dessus crée un formulaire de connexion avec 2 zones de saisie.

Ensuite, nous devons écrire du code PHP dans le fichier login.php pour vérifier les informations de connexion de l'utilisateur dans la base de données Cassandra :

<?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.';
}
?>

Le code ci-dessus obtient le nom d'utilisateur et le mot de passe de la soumission du formulaire et interroge les informations utilisateur de Cassandra. table via les instructions CQL. Si le résultat de la requête n'est pas vide, la connexion réussit ; sinon, la connexion échoue.

4.Résumé

La base de données Cassandra est un excellent système de base de données NoSQL offrant des performances, une évolutivité, une tolérance aux pannes et une cohérence des données élevées, et convient à la gestion des exigences d'accès des applications Web à grande échelle. Le pilote cassandra de PHP fournit une API pour se connecter et exploiter la base de données Cassandra, facilitant ainsi le développement d'applications Web évolutives et hautes performances. Cet article montre comment utiliser la base de données PHP et Cassandra pour créer un système simple d'enregistrement et de connexion des utilisateurs via un exemple de programme, dans l'espoir de fournir une référence aux développeurs.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn