阅读模式:

php redis封装类

查看:1650  回复:0  类型:  来源:php自学网  标签 php redis

    php的redis类。

<?php

class redisCache{
	
    public static $ip = REDIS_HOST;
    public static $port = REDIS_PORT;
    public static $expire = REDIS_EXPIRE;
    private static $password = REDIS_PASS;
    public static $dbindex = REDIS_DB;
    public static $redis = false;

    /**
     * 连接到redis缓存
     */
    public function __construct(){

        if(extension_loaded('redis')){
            if(self::$redis = new redis()){
                if(!self::ping()){
                    self::$redis = false;
                }else{
                    self::$redis->auth(self::$password);
                    self::$redis->select(self::$dbindex);
                }

            }else{
				self::$redis = false;
            }
        }else{
           self::$redis = false;
        }
		
		if (self::$redis == false) {
			ini_set('session.save_handler','files');
			ini_set('session.save_path','/tmp');
		}
    }



    /**
     * ping redis 的连通性
     */
    public static function ping(){
        if(self::$redis->connect(self::$ip,self::$port)){
	        return true;
	    }else{
	       return false;
	    }

    }



    /**
     * 检测redis键是否存在
     */
    public static function exists($key){
        if (self::$redis) {
            if(self::$redis->exists($key)){
                return true;
            } else {
                return false;
            }
        }
    }


    /**
     * 获取redis键的值
     */
    public static function get($key){
        if (self::$redis) {
            if(self::exists($key)){
                return json_decode(self::$redis->get($key) ?? null,true);
            }
        } else {
            return false;
        }
    }


    /**
     * 带生存时间写入key
     */
    public static function setex($key, $value, $expire = 600){
        if (self::$redis) {
            if (self::$redis->setex($key,$expire,json_encode($value)) ) {
                return true;
            }
        }
    }


    /**
     * 设置redis键值
     */
    public static function set($key, $value){
        if (self::$redis) {
            if( self::$redis->set($key,json_encode($value)) ){
                self::$redis->expire($key, self::$expire);
            }
        }
    }


    /**
     * 删除key
    */
    public static function del($key){
        if (self::$redis) {
            self::$redis->del($key);
        }
    }


    /**
     * 清空所有数据
    */
    public static function flushall(){
        if (self::$redis) {
            self::$redis->flushall();
        }
    }


}
<?php
new redisCache();
redisCache::get($key);


分享到:
0 0

发布评论:


登录:
  表情:
提交