Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Aplikasi pangkalan data PHP dan Cassandra

Aplikasi pangkalan data PHP dan Cassandra

WBOY
WBOYasal
2023-06-19 16:34:031048semak imbas

Dengan pembangunan berterusan teknologi Internet, fungsi dan skala aplikasi Web terus berkembang, dan keperluan untuk akses pangkalan data juga semakin tinggi dan lebih tinggi. Ini telah mendorong pembangun untuk mencari penyelesaian pangkalan data baharu untuk meningkatkan prestasi dan kebolehskalaan aplikasi web. Artikel ini akan memperkenalkan cara menggunakan bahasa PHP dan pangkalan data Cassandra untuk membina aplikasi web berprestasi tinggi dan boleh skala.

1. Apakah itu pangkalan data Cassandra

Cassandra ialah sistem pangkalan data NoSQL yang diedarkan sumber terbuka, pada asalnya dibangunkan oleh Facebook dan kini diselenggara oleh Yayasan Apache. Konsepnya adalah untuk mengambil kira ketersediaan data, skalabiliti dan toleransi kesalahan sambil memastikan prestasi tinggi.

Ciri pangkalan data Cassandra termasuk:

  1. Storan teragih: Cassandra menggunakan storan teragih, dan data akan diedarkan dan disimpan pada berbilang nod untuk memastikan data antara setiap nod sandaran meningkatkan kebolehpercayaan dan ketersediaan.
  2. Storan lajur: Cassandra menggunakan storan lajur dan menyimpan setiap baris data sebagai "keluarga lajur" untuk lebih fleksibiliti.
  3. Ketekalan data: Cassandra menyediakan ketersediaan tinggi dan pemulihan data melalui replikasi data automatik dalam kelompok, dan boleh mencapai keperluan prestasi yang berbeza melalui tahap konsistensi boleh laras.
  4. Skalabiliti: Cassandra menyokong penambahan dan penyingkiran nod dinamik, dan boleh berkembang secara mendatar dengan cekap.
  5. Prestasi tinggi: Cassandra mempertingkatkan prestasi baca dan tulis melalui penulisan dan pengindeksan tak segerak, sambil menambah baik keselarasan melalui strategi pengimbangan beban.

2. PHP bersambung ke pangkalan data Cassandra

Pangkalan data Cassandra menyokong pelbagai API pelanggan, antaranya penyataan PHP dan CQL merupakan salah satu cara yang paling mudah. CQL ialah singkatan Bahasa Pertanyaan Cassandra, yang serupa dengan SQL, tetapi mempunyai jenis data yang lebih kaya dan menyokong operasi pertanyaan teragih yang kompleks.

Di bawah ini kami menggunakan pemacu cassandra PHP untuk menyambung dan mengendalikan pangkalan data Cassandra.

  1. Pasang cassandra-driver

Cassandra-driver PHP boleh dipasang melalui komposer. Buka baris arahan, masukkan direktori akar projek anda, dan jalankan arahan berikut:

composer require datastax/php-driver
  1. Sambung ke Cassandra

Untuk menyambung ke Cassandra, anda perlu mengetahui sambungan hos dan nombor port. Berikut ialah satu kod Contoh untuk menyambung kepada Cassandra:

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

Kod di atas mencipta titik sambungan perkhidmatan Cassandra melalui kaedah cluster() dan menyambung kepadanya melalui kaedah connect(). Antaranya, 127.0.0.1 menunjukkan alamat IP perkhidmatan Cassandra, dan 9042 menunjukkan nombor port perkhidmatan Cassandra.

  1. Laksanakan penyataan CQL

Penyataan CQL digunakan untuk berinteraksi dengan pangkalan data Cassandra Anda boleh melaksanakan penyataan CQL dengan mudah menggunakan pemacu cassandra PHP. Berikut ialah contoh kod untuk melaksanakan pernyataan CQL:

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

Kod di atas menggunakan kelas SimpleStatement untuk mencipta pernyataan pertanyaan CQL, kemudian menggunakan kaedah execute() untuk melaksanakan pernyataan dan menyimpan hasil pertanyaan dalam pembolehubah $hasil.

  1. Sisipkan data

Pangkalan data Cassandra menyokong memasukkan data format JSON dengan fleksibiliti yang tinggi. Berikut ialah contoh kod:

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

Kod di atas mentakrifkan data format JSON dan memasukkannya ke dalam jadual mykeyspace.mytable melalui pernyataan CQL.

3. Contoh aplikasi

Di bawah ini kami menggabungkan aplikasi web mudah untuk menunjukkan cara menggunakan pangkalan data PHP dan Cassandra untuk membina aplikasi berprestasi tinggi dan berskala. Aplikasi sampel ini menyediakan fungsi log masuk dan pendaftaran serta menggunakan pangkalan data Cassandra untuk menyimpan maklumat pengguna.

  1. Buat jadual Cassandra

Pertama, kita perlu mencipta jadual dalam pangkalan data Cassandra untuk menyimpan maklumat pengguna. Berikut ialah contoh pernyataan 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
);

Kod di atas mencipta ruang kekunci bernama "mykeyspace" dan mencipta jadual bernama "pengguna" di dalamnya. Jadual mengandungi 4 lajur, iaitu id, nama pengguna, e-mel dan kata laluan, di mana id adalah kunci utama.

  1. Melaksanakan fungsi pendaftaran pengguna

Berikut ialah contoh kod untuk halaman pendaftaran pengguna:

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

Kod di atas mencipta kotak input dengan 3 kotak input Borang pendaftaran, di mana nama pengguna, e-mel dan kata laluan diperlukan.

Kemudian, kita perlu menulis kod PHP dalam fail register.php untuk menyimpan maklumat pendaftaran pengguna dalam pangkalan data 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');
?>

Kod di atas mendapat data yang diserahkan daripada borang dan menjana ID unik. Kemudian masukkan maklumat pengguna ke dalam jadual Cassandra dan lompat ke halaman log masuk.

  1. Laksanakan fungsi log masuk pengguna

Berikut ialah contoh kod untuk halaman log masuk pengguna:

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

Kod di atas mencipta kotak input dengan 2 kotak masukan borang log masuk.

Kemudian, kita perlu menulis kod PHP dalam fail login.php untuk mengesahkan maklumat log masuk pengguna dalam pangkalan data 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.';
}
?>

Kod di atas mendapat nama pengguna dan kata laluan daripada penyerahan borang dan meneruskannya melalui Penyata CQL untuk menanyakan maklumat pengguna dari jadual Cassandra. Jika hasil pertanyaan tidak kosong, log masuk berjaya jika tidak, log masuk gagal.

4

Pangkalan data Cassandra ialah sistem pangkalan data NoSQL yang sangat baik dengan prestasi tinggi, berskala, toleransi kesalahan dan konsistensi data, serta sesuai untuk mengendalikan keperluan akses aplikasi web berskala besar. Pemacu cassandra PHP menyediakan API untuk menyambung dan beroperasi dengan pangkalan data Cassandra, menjadikannya mudah untuk membangunkan aplikasi web berprestasi tinggi dan boleh skala. Artikel ini menunjukkan cara menggunakan pangkalan data PHP dan Cassandra untuk membina sistem pendaftaran dan log masuk pengguna yang mudah melalui program contoh, dengan harapan dapat memberikan sedikit rujukan untuk pembangun.

Atas ialah kandungan terperinci Aplikasi pangkalan data PHP dan Cassandra. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn