invincible-tech-systems/easeamp-mysql-redis

A very simple and safe PHP library that enables easy redis cache warmup from MySQL/MariaDB Database. This uses EaseAmpMysql and EaseAmpRedis packages, that wraps up the AmPHP related MySQL and Redis Packages to interact with MySQL/MariaDB database and also with Redis in-memory cache in an asynchrono

1.0.8 2021-03-03 14:52 UTC

This package is auto-updated.

Last update: 2024-04-29 04:21:26 UTC


README

A very simple and safe PHP library that enables easy redis cache warmup from MySQL/MariaDB Database. This uses EaseAmpMysql and EaseAmpRedis packages, that wraps up the AmPHP related MySQL and Redis Packages to interact with MySQL/MariaDB database and also with Redis in-memory cache in an asynchronous & non-blocking way.

Why EaseAmpMysqlRedis?

While Prepared Statements on Mysql/MariaDB can be done EaseAmpMysql package and interaction with Redis Cache can be done using EaseAmpRedis package, EaseAmpMysqlRedis class will be useful to do SQL Queries on MySQL/MariaDB in sync with Redis Cache in a simple and easy way.

Advantages

  • Easy wrapper methods to deal with SQL Queries and Redis Cache Operations.

Getting started

With Composer, run

composer require invincible-tech-systems/easeamp-mysql-redis:^1.0.8

Note that the vendor folder and the vendor/autoload.php script are generated by Composer; they are not part of PDOLight.

To include the library,

<?php
require 'vendor/autoload.php';

use \InvincibleTechSystems\EaseAmpMysql\EaseAmpMysql;
use \InvincibleTechSystems\EaseAmpRedis\EaseAmpRedis;
use \InvincibleTechSystems\EaseAmpMysqlRedis\EaseAmpMysqlRedis;

As Amphp/dns is among the dependencies of this library, to prevent recursive DNS Server resolution errors that may occur due reasons like open_basedir restrictions/ no access to /etc/resolv.conf file on the linux server etc..., do include the following lines in your code,

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

Note: Do skip including the above, if incase similar custom DNS Config Loader is loaded from any of the other Amphp/dns dependent libraries like EaseAmyMysql (https://github.com/invincible-tech-systems/easeamp-mysql) or EaseAmpRedis (https://github.com/invincible-tech-systems/easeamp-redis) in the application.

In order to connect to the database, you need to initialize the EaseAmpMysql class, by passing your database credentials as parameters, in the following order (server hostname, username, password, database name):

$dbHost = "localhost";
$dbUsername = "database_username";
$dbPassword = "database_password_value";
$dbName = "database_name";

$dbConn = new EaseAmpMysql($dbHost, $dbUsername, $dbPassword, $dbName);
$redisHost = 'tcp://localhost:6379';
$redisKeyNamespacePrefix = "MyFirstApp";
$redisKeyExpiryTimeInSeconds = 240;

$redisConn = new EaseAmpRedis($redisHost);

License

This software is distributed under the MIT license. Please read LICENSE for information on the software availability and distribution.