您的当前位置:首页>全部文章>文章详情

php缓存之redis扩展

发表于:2019-10-11 16:40:55浏览:52次TAG: #PHP

github 官方文档

https://github.com/phpredis/phpredis

扩展包下载

php-redis扩展包下载

安装

wget https://pecl.php.net/get/redis-4.3.0.tgz
tar zxvf redis-4.3.0.tgz
cd redis-4.3.0
phpize
sudo ./configure --with-php-config=/usr/local/php/bin/php-config
sudo make
sudo make install

添加到php.ini

sudo vim /usr/local/php/etc/conf.d/redis.ini

写入如下内容

[redis]
extension=redis.so

重启 php 服务,查看 phpinfo 信息,就能看到redis扩展。

封装类

class MyRedis {
    public $_redis = null;
    protected $_config = array(
        'host'         => REDIS_HOST,        # reids 服务地址
        'port'        => REDIS_PORT,        # reids 服务端口 默认: 6379
        'timeout'     => 300,                # redis 链接超时时间,单位(秒),0为无限
    );

    public function __construct($config=array()){
        # 创建一个Redis客户端
        $this->_redis = new Redis();
        # 连接,打开
        $this->_redis->connect(
            $this->_config['host'],
            $this->_config['port'],
            $this->_config['timeout']
        );
    }
    /**
     * 获取与指定键相关的值
     * @param key 建
     * @return 回与此键相关的值 | 键不存在返回FALSE
     */
    public function get($key){
        return $this->_redis->get($key);
    }
    /**
     * 将参数中的字符串值设置为键的值。
     * @param key 建
     * @param value 值
     * @return     bool, 成功则返回true
     */
    public function set($key, $value){
        return $this->_redis->set($key);
    }
    /**
     * 设置项目的到期日期(超时)。 一般与set使用
     * @param key 建
     * @param ex_time 时间,单位(秒)
     * @return     bool, 成功则返回true
     */
    public function expire($key, $ex_time){
        return $this->_redis->expire($key, $ex_time);
    }
    /**
     * 将参数中的字符串值设置为键的值,并保留一定时间。
     * @param key 建
     * @param ex_time 时间,单位(秒)
     * @param value 值
     * @return     bool, 成功则返回true
     */
    public function setEx($key, $ex_time, $value){
        return $this->_redis->setex($key, $ex_time, $value);
    }
    /**
     * 验证指定的密钥是否存在。
     * @param key 建 string|string,string|array(string, string)
     * @return long 存在的已测试键的数量 (phpredis version<4.0.0 返回bool)
     */
    public function delete($keys) {
        return $this->_redis->delete($key);
    }
    /**
     * 删除指定的键。
     * @param key 建
     * @return array()
     */
    public function exists($key){
        return $this->_redis->exists($key);
    }

    /**
     * 返回与特定模式匹配的键。
     * @param strPattern 模式,使用“ *”作为通配符。
     * @param key 建
     */
    public function keys($strPattern){
        return $this->_redis->keys($strPattern);
    }
}

使用

$_redis = new MyRedis();
$data = $_redis->get("_redis_key");
var_dump($data);
# 输出: bool(false)

// 添加缓存
$_redis->setEx("_redis_key", 3600, json_encode(array("abc", "def")));

// 再出读出
$data = $_redis->get("_redis_key");
var_dump($data);
# 输出: string(13) "["abc","def"]"
栏目分类全部>
腾讯云采购季云服务器一折促销