如何在Ubuntu 20.04上使用PHP将Redis设置为MySQL的缓存
Redis是一个开源的内存数据结构存储,可用于缓存,实时分析,搜索和机器学习。 将Redis与PHP和MySQL集成会提高您的应用程序性能,因为Redis将数据存储在RAM中。
您可以将其与MySQL或MariaDB等数据库一起使用。 Redis提供了一种缓存查询的机制。 例如,当用户第一次请求您的应用程序页面时,将在服务器上执行MySQL查询,然后Redis将该查询缓存到RAM。 当另一个用户请求同一页面时,您无需再次查询数据库。
先决条件
- Ubuntu 20.04 VPS(我们将使用SSD 2 VPS计划)
- 访问root用户帐户(或访问具有root特权的管理员帐户)
步骤1:登录到服务器并更新服务器操作系统软件包
首先,以root用户身份通过SSH登录到Ubuntu 20.04服务器:
ssh [email protected]_Address -p Port_number
您将需要用服务器各自的IP地址和SSH端口号替换“ IP_Address”和“ Port_number”。 此外,如有必要,将“ root”替换为管理员帐户的用户名。
开始之前,您必须确保服务器上安装的所有Ubuntu OS软件包都是最新的。 您可以通过运行以下命令来执行此操作:
apt-get update -y apt-get upgrade -y
步骤2:安装LAMP Server
首先,您需要在系统中安装LAMP服务器。 您可以使用以下命令进行安装:
apt-get install apache2 php libapache2-mod-php php-pdo php-json php-cli mysql-server -y
安装完成后,您可以继续执行下一步。
步骤3:安装和配置Redis
默认情况下,Ubuntu默认存储库中不包含最新版本的Redis。 因此,您将需要将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步:创建一个PHP应用程序以从MySQL获取数据
接下来,您将需要创建一个PHP应用程序并将其托管在Apache Web服务器上。 该应用程序将连接到MySQL数据库并查询我们之前创建的Student表。
首先,在Apache Web根目录中创建一个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×7的服务,并会立即处理您的要求。
聚苯乙烯。 如果您喜欢这篇文章, 如何在Ubuntu 20.04上使用PHP将Redis设置为MySQL的缓存,请使用左侧的按钮在社交网络上与您的朋友分享,或者在下面留下您的答复。 谢谢。