Redisは、キャッシュ、リアルタイム分析、検索、機械学習に使用できるオープンソースのインメモリデータ構造ストアです。 RedisをPHPおよびMySQLと統合すると、RedisはデータをRAMに保存するため、アプリケーションのパフォーマンスが向上します。
MySQLやMariaDBなどのデータベースで使用できます。 Redisは、クエリをキャッシュするメカニズムを提供します。たとえば、ユーザーがアプリケーションページを初めてリクエストすると、サーバーでMySQLクエリが実行され、RedisはこのクエリをRAMにキャッシュします。別のユーザーが同じページをリクエストした場合、データベースに再度クエリを実行する必要はありません。
- Ubuntu 20.04 VPS(SSD 2 VPSプランを使用します)
- rootユーザーアカウントへのアクセス(またはroot権限を持つ管理者アカウントへのアクセス)
ステップ1:サーバーにログインしてサーバーOSパッケージを更新する
まず、rootユーザーとしてSSH経由でUbuntu20.04サーバーにログインします。
ssh root@IP_Address -p Port_number
「IP_Address」と「Port_number」をサーバーのそれぞれのIPアドレスとSSHポート番号に置き換える必要があります。さらに、必要に応じて「root」を管理者アカウントのユーザー名に置き換えます。
開始する前に、サーバーにインストールされているすべてのUbuntuOSパッケージが最新であることを確認する必要があります。これを行うには、次のコマンドを実行します。
apt-get update -y apt-get upgrade -y
ステップ2:LAMPサーバーをインストールする
まず、システムにLAMPサーバーをインストールする必要があります。次のコマンドでインストールできます:
apt-get install apache2 php libapache2-mod-php php-pdo php-json php-cli mysql-server -y
インストールが完了したら、次の手順に進むことができます。
ステップ3:Redisをインストールして構成する
デフォルトでは、Redisの最新バージョンはUbuntuのデフォルトリポジトリに含まれていません。そのため、Redisリポジトリをシステムに追加する必要があります。
まず、次のコマンドを使用して必要なパッケージをインストールします。
apt-get install software-properties-common gnupg2 -y
次に、次のコマンドを使用してRedisリポジトリを追加します。
add-apt-repository ppa:chris-lea/redis-server
リポジトリが追加されたら、次のコマンドを使用してRedisサーバーをインストールします。
apt-get install redis-server -y
次に、次のコマンドを使用して、PHPおよびMySQLのRedis拡張機能をインストールします。
apt-get install php-redis php-mysql -y
両方のパッケージがインストールされたら、Redisサービスを開始し、システムの再起動時に開始できるようにします。
systemctl start redis-server systemctl enable redis-server
次に、Apacheサービスを再起動して、構成の変更を適用します。
systemctl restart apache2
ステップ4:MySQLデータベースを作成する
次に、Redisキャッシングをテストするためのデータベース、ユーザー、テーブルを作成する必要があります。
まず、次のコマンドを使用してMySQLに接続します。
mysql
次に、次のコマンドを使用してデータベースとユーザーを作成します。
mysql> CREATE DATABASE testdb; mysql> CREATE USER 'testuser'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
次に、次のコマンドを使用して、testdbデータベースにすべての権限を付与します。
mysql> GRANT ALL PRIVILEGES ON testdb.* TO 'testuser'@'localhost';
次に、次のコマンドを使用して特権をフラッシュします。
mysql> FLUSH PRIVILEGES;
次に、データベースをtestdbに変更し、次のコマンドを使用してstudentという名前のテーブルを作成します。
mysql> use testdb; mysql> CREATE TABLE student ( student_id INT AUTO_INCREMENT PRIMARY KEY, first_name VARCHAR(50), last_name VARCHAR(50) );
次に、次のコマンドを使用してテーブルにデータを挿入します。
mysql> INSERT INTO student (first_name, last_name) VALUES ('John', 'Thompson');
mysql> INSERT INTO student (first_name, last_name) VALUES ('Greg', 'Smith');
mysql> INSERT INTO student (first_name, last_name) VALUES ('Ray', 'Brown'); これで、次のコマンドを使用してすべてのデータを確認できます。
mysql> SELECT student_id, first_name, last_name from student;
次の出力が得られるはずです:
+------------+------------+-----------+ | student_id | first_name | last_name | +------------+------------+-----------+ | 1 | John | Thompson | | 2 | Greg | Smith | | 3 | Ray | Brown | +------------+------------+-----------+ 3 rows in set (0.00 sec)
次に、次のコマンドを使用してMySQLを終了します。
mysql> EXIT;
ステップ5:MySQLからデータをフェッチするPHPアプリケーションを作成する
次に、PHPアプリケーションを作成し、ApacheWebサーバーでホストする必要があります。このアプリケーションはMySQLデータベースに接続し、前に作成した学生テーブルにクエリを実行します。
まず、ApacheWebルートディレクトリにPHPアプリケーションを作成します。
nano /var/www/html/student.php
次のコードを追加します:
<html>
<head>
<title>Using Redis Server with PHP and MySQL</title>
</head>
<body>
<h1 align = 'center'>Students' Register</h1>
<table align = 'center' border = '2'>
<?php
try {
$data_source = '';
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
$sql = 'select
student_id,
first_name,
last_name
from student
';
$cache_key = md5($sql);
if ($redis->exists($cache_key)) {
$data_source = "Data from Redis Server";
$data = unserialize($redis->get($cache_key));
} else {
$data_source = 'Data from MySQL Database';
$db_name = 'testdb';
$db_user = 'testuser';
$db_password = 'password';
$db_host = 'localhost';
$pdo = new PDO('mysql:host=' . $db_host . '; dbname=' . $db_name, $db_user, $db_password);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $pdo->prepare($sql);
$stmt->execute();
$data = [];
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
$data[] = $row;
}
$redis->set($cache_key, serialize($data));
$redis->expire($cache_key, 10);
}
echo "<tr><td colspan = '3' align = 'center'><h2>$data_source</h2></td></tr>";
echo "<tr><th>Student Id</th><th>First Name</th><th>Last Name</th></tr>";
foreach ($data as $record) {
echo '<tr>';
echo '<td>' . $record['student_id'] . '</td>';
echo '<td>' . $record['first_name'] . '</td>';
echo '<td>' . $record['last_name'] . '</td>';
echo '</tr>';
}
} catch (PDOException $e) {
echo 'Database error. ' . $e->getMessage();
}
?>
</table>
</body>
</html>
終了したら、ファイルを保存して閉じます。
上記のアプリケーションはMySQLデータベースに接続し、データをRedisにキャッシュします。
ステップ6:Redisキャッシングをテストする
次に、Redisキャッシングが機能しているかどうかをテストする必要があります。 Webブラウザーを開き、URLを使用してアプリケーションにアクセスします
http://your-server-ip/student.php 。アプリケーションに初めてアクセスするときは、MySQLデータベースからフェッチする必要があります。アプリケーションに再度アクセスすると、Redisキャッシュからデータを取得するため、アプリケーションをより速く開く必要があります。
もちろん、マネージドRedisホスティングのいずれかを使用している場合は、MySQLでセットアップRedisをインストールする必要はありません。その場合は、専門のLinux管理者にインストールと構成を依頼するだけです。 24時間年中無休でご利用いただけます。リクエストはすぐに処理されます。
PS 。 Ubuntu20.04でPHPを使用してMySQLのキャッシュとしてRedisを設定する方法に関するこの投稿が気に入った場合 、左側のボタンを使用してソーシャルネットワークで友達と共有するか、下に返信してください。ありがとう。