Heim  >  Artikel  >  Datenbank  >  So verwenden und kapseln Sie Redis im ThinkPHP5-Framework

So verwenden und kapseln Sie Redis im ThinkPHP5-Framework

WBOY
WBOYnach vorne
2023-05-29 20:40:101128Durchsuche

Redis ist eine häufig verwendete nicht relationale Datenbank, die hauptsächlich zum Zwischenspeichern von Daten verwendet wird. Die Daten werden in Form von Schlüsselwerten gespeichert, und die Datenspeicherung unterscheidet sich von MySQL , und seine Daten werden im Speicher gespeichert, was für eine hohe Parallelität sehr gut ist. Bevor Sie die mit ThinkPHP5.0 gelieferte Redis-Erweiterung verwenden, müssen Sie php_redis herunterladen .dll zuerst. Wählen Sie die entsprechende Version entsprechend Ihrem eigenen Windows-Betriebssystem und ich habe VC2012 installiert, also habe ich php_redis-2.2.7-5.6-ts-vc11-x64.zip

Download heruntergeladen Dekomprimieren Sie nach dem Komprimieren des Pakets die darin enthaltene php_redis.dll nach D:wampbinphpphp5.6.25ext (wählen Sie entsprechend der Festplatte aus, auf der sich Ihr Wamp befindet), fügen Sie dann extension=php_redis.dll zu php.ini hinzu und starten Sie Apache neu;# 🎜🎜#

Das Folgende ist der Code, den ich selbst getestet habe. Es gibt nicht viel Verpackung.

erweitern ist thinkPHP5.0#🎜🎜 ## 🎜🎜#
namespace My;  //目录我放在thinkphp5.0/extend/My  

class RedisPackage
{
    protected static $handler = null;
    protected $options = [
        'host' => '127.0.0.1',
        'port' => 6379,
        'password' => '',
        'select' => 0,
        'timeout' => 0,    //关闭时间 0:代表不关闭
        'expire' => 0,
        'persistent' => false,
        'prefix' => '',
    ];

    public function __construct($options = [])
    {
        if (!extension_loaded('redis')) {   //判断是否有扩展(如果你的apache没reids扩展就会抛出这个异常)
            throw new \BadFunctionCallException('not support: redis');      
        }
        if (!empty($options)) {
            $this->options = array_merge($this->options, $options);
        }
        $func = $this->options['persistent'] ? 'pconnect' : 'connect';     //判断是否长连接
        self::$handler = new \Redis;
        self::$handler->$func($this->options['host'], $this->options['port'], $this->options['timeout']);

        if ('' != $this->options['password']) {
            self::$handler->auth($this->options['password']);
        }

        if (0 != $this->options['select']) {
            self::$handler->select($this->options['select']);
        }
    }

    /**
     * 写入缓存
     * @param string $key 键名
     * @param string $value 键值
     * @param int $exprie 过期时间 0:永不过期
     * @return bool
     */
    public static function set($key, $value, $exprie = 0)
    {
        if ($exprie == 0) {
            $set = self::$handler->set($key, $value);
        } else {
            $set = self::$handler->setex($key, $exprie, $value);
        }
        return $set;
    }

    /**
     * 读取缓存
     * @param string $key 键值
     * @return mixed
     */
    public static function get($key)
    {
        $fun = is_array($key) ? 'Mget' : 'get';
        return self::$handler->{$fun}($key);
    }

    /**
     * 获取值长度
     * @param string $key
     * @return int
     */
    public static function lLen($key)
    {
        return self::$handler->lLen($key);
    }

    /**
     * 将一个或多个值插入到列表头部
     * @param $key
     * @param $value
     * @return int
     */
    public static function LPush($key, $value, $value2 = null, $valueN = null)
    {
        return self::$handler->lPush($key, $value, $value2, $valueN);
    }

    /**
     * 移出并获取列表的第一个元素
     * @param string $key
     * @return string
     */
    public static function lPop($key)
    {
        return self::$handler->lPop($key);
    }
}
rrree

Das obige ist der detaillierte Inhalt vonSo verwenden und kapseln Sie Redis im ThinkPHP5-Framework. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen