invincible-tech-systems / easeamp-mysql-redis
一个非常简单且安全的PHP库,可以轻松地从MySQL/MariaDB数据库实现Redis缓存预热。该库使用EaseAmpMysql和EaseAmpRedis包,这些包将AmPHP相关的MySQL和Redis包包装起来,以便与MySQL/MariaDB数据库以及Redis内存缓存进行异步和非阻塞交互。
Requires
- php: >=7.2
- invincible-tech-systems/easeampmysql: ^1.0.7
- invincible-tech-systems/easeampredis: ^1.0.0
Requires (Dev)
- php: >=7.2
- invincible-tech-systems/easeampmysql: ^1.0.7
- invincible-tech-systems/easeampredis: ^1.0.0
README
一个非常简单且安全的PHP库,可以轻松地从MySQL/MariaDB数据库实现Redis缓存预热。该库使用EaseAmpMysql和EaseAmpRedis包,这些包将AmPHP相关的MySQL和Redis包包装起来,以便与MySQL/MariaDB数据库以及Redis内存缓存进行异步和非阻塞交互。
为什么选择EaseAmpMysqlRedis?
虽然可以在MySQL/MariaDB上使用预编译语句,并且可以使用EaseAmpRedis包与Redis缓存交互,但EaseAmpMysqlRedis类可以以简单且方便的方式在MySQL/MariaDB上执行SQL查询,并与Redis缓存同步。
优点
- 易于使用的封装方法来处理SQL查询和Redis缓存操作。
入门
使用Composer,运行
composer require invincible-tech-systems/easeamp-mysql-redis:^1.0.8
注意,vendor
文件夹和vendor/autoload.php
脚本是由Composer生成的;它们不是PDOLight的一部分。
要包含库,
<?php require 'vendor/autoload.php'; use \InvincibleTechSystems\EaseAmpMysql\EaseAmpMysql; use \InvincibleTechSystems\EaseAmpRedis\EaseAmpRedis; use \InvincibleTechSystems\EaseAmpMysqlRedis\EaseAmpMysqlRedis;
由于Amphp/dns是这个库的依赖之一,为防止由于open_basedir限制/没有访问Linux服务器上的/etc/resolv.conf文件等原因可能发生的递归DNS服务器解析错误,请在您的代码中包含以下行,
use \InvincibleTechSystems\EaseAmpMysqlRedis\CustomAmphpDnsConfigLoader; $customAmphpDnsConfigValues = ["208.67.222.222:53", "208.67.220.220:53","8.8.8.8:53","[2001:4860:4860::8888]:53"]; $CustomAmphpDnsConfigLoader = new CustomAmphpDnsConfigLoader($customAmphpDnsConfigValues, 5000, 3); \Amp\Dns\resolver(new \Amp\Dns\Rfc1035StubResolver(null, $CustomAmphpDnsConfigLoader));
注意:如果在其他Amphp/dns依赖库(如EaseAmyMysql https://github.com/invincible-tech-systems/easeamp-mysql 或 EaseAmpRedis https://github.com/invincible-tech-systems/easeamp-redis)中加载了类似的自定义DNS配置加载器,请跳过包含上述内容。
为了连接到数据库,您需要通过传递数据库凭据作为参数初始化EaseAmpMysql
类,以下顺序(服务器主机名、用户名、密码、数据库名)
$dbHost = "localhost"; $dbUsername = "database_username"; $dbPassword = "database_password_value"; $dbName = "database_name"; $dbConn = new EaseAmpMysql($dbHost, $dbUsername, $dbPassword, $dbName);
$redisHost = 'tcp://:6379'; $redisKeyNamespacePrefix = "MyFirstApp"; $redisKeyExpiryTimeInSeconds = 240; $redisConn = new EaseAmpRedis($redisHost);