TZRedis.php 1.79 KB
<?php

namespace Tz\WordPress\Tools;

use Throwable;
use Predis;

class TZRedis {

    protected static $redis = null;
    private static $err = "TZRedis !!! ";

    private static function connectInstance() {

        try {

            if(!self::$redis) {
                self::$redis = new Predis\Client();
            }

        } catch(Throwable $e) {
            error_log(self::$err.$e->getMessage());
        }
    }

    static function set($key, $val, $expire = 300) {
        try {

            self::connectInstance();

            if(self::$redis) {
                self::$redis->set($key, $val, 'ex', $expire);
            }
            
        }catch (Throwable $e) {
            error_log(self::$err."Failed to set ".$key." with ".$val. ", error message = ".$e->getMessage());
        }
    }

    static function get($key, $unserialize = false) {
        try {

            self::connectInstance();

            if(self::$redis) {
                if($unserialize) {
                    return unserialize(self::$redis->get($key));
                } else {
                    return self::$redis->get($key);
                }
            }

        }catch (Throwable $e) {
            error_log(self::$err."Failed to get ".$key);
        }
    }

    static function exists($key) {
        try {

            self::connectInstance();

            if(self::$redis) {
               return self::$redis->exists($key);
            }

        }catch (Throwable $e) {
            error_log(self::$err.$e->getMessage());
        }
    }

    static function clear($key) {
        try {

            self::connectInstance();

            if(self::$redis) {
               self::$redis->delete($key);
            }

        }catch (Throwable $e) {
            error_log(self::$err.$e->getMessage());
        }
    }


}