Heim > Datenbank > Redis > Was ist die Methode zur Verwendung von Redis im ThinkPHP-Framework in Pagoda?

Was ist die Methode zur Verwendung von Redis im ThinkPHP-Framework in Pagoda?

王林
Freigeben: 2023-06-02 20:31:01
nach vorne
1046 Leute haben es durchsucht

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 Schlüsselwerte werden einander zugeordnet. Die Datenspeicherung unterscheidet sich von MySQL. Die Daten werden im Speicher gespeichert, sodass das Lesen der Daten relativ schnell erfolgt, was für eine hohe Parallelität sehr gut ist.

Installieren Sie bei der Installation von Redis das Pagoden-Panel auf dem Server oder der virtuellen Maschine, damit Sie Redis ganz einfach verwenden können. Denken Sie daran, dass Sie bei der Installation von Redis nicht nur die Redis-Software installieren, sondern auch PHP eingeben müssen Vom Projekt zum Installieren von Redis verwendete Version Erweitern Sie die Redis-Software und öffnen Sie sie.

1 Suchen Sie zunächst im Installationsfenster der Pagode nach Redis und klicken Sie auf „Installieren“.

Was ist die Methode zur Verwendung von Redis im ThinkPHP-Framework in Pagoda?

2. Klicken Sie nach der Installation von Redis auf Einstellungen und legen Sie ein Passwort fest.

3 Installieren Sie die Redis-Erweiterung in der PHP-Umgebung.

Stellen Sie sicher, dass Sie die Redis-Erweiterung in der von der Website verwendeten PHP-Version installieren.

Erstellen Sie ein Plug-in

Erstellen Sie die Datei RedisPackage.php im Erweiterungsordner des ThinkPHP-Stammverzeichnisses. Der Inhalt lautet wie folgt:

<?php
 
class RedisPackage
{
    protected static $handler = null;
    protected $options = [
        &#39;host&#39; => &#39;127.0.0.1&#39;,
        &#39;port&#39; => 6379,
        &#39;password&#39; => &#39;这是你是之前设置的redis密码&#39;,
        &#39;select&#39; => 0,
        &#39;timeout&#39; => 20,//关闭时间 0:代表不关闭
        &#39;expire&#39; => 0,
        &#39;persistent&#39; => false,
        &#39;prefix&#39; => &#39;&#39;,
    ];
 
    public function __construct($options = [])
    {
        if (!extension_loaded(&#39;redis&#39;)) {   //判断是否有扩展(如果你的apache没reids扩展就会抛出这个异常)
            throw new \BadFunctionCallException(&#39;not support: redis&#39;);
        }
        if (!empty($options)) {
            $this->options = array_merge($this->options, $options);
        }
        $func = $this->options[&#39;persistent&#39;] ? &#39;pconnect&#39; : &#39;connect&#39;;     //判断是否长连接
        self::$handler = new \Redis;
        self::$handler->$func($this->options[&#39;host&#39;], $this->options[&#39;port&#39;], $this->options[&#39;timeout&#39;]);
 
        if (&#39;&#39; != $this->options[&#39;password&#39;]) {
            self::$handler->auth($this->options[&#39;password&#39;]);
        }
 
        if (0 != $this->options[&#39;select&#39;]) {
            self::$handler->select($this->options[&#39;select&#39;]);
        }
    }
 
    /**
     * 写入缓存
     * @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) ? &#39;Mget&#39; : &#39;get&#39;;
        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);
    }
 
 
}
Nach dem Login kopieren

Das Definitionsarray $options in der Klasse RedisPackage Passwort. Geben Sie das oben festgelegte Redis-Passwort ein.

Führen Sie die Datei ein.

import(&#39;RedisPackage&#39;, EXTEND_PATH);
Nach dem Login kopieren

exists() Bestimmen Sie, ob der Schlüssel vorhanden ist.

#设置
\RedisPackage::set(&#39;要设置的key&#39;,&#39;这是value&#39;);
 
#获取
$key = \RedisPackage::get(&#39;已设置的key&#39;));
Nach dem Login kopieren

set()

set() zum Speichern des Schlüsselwerts Daten, die gespeichert werden sollen. Diese Methode kann nach dem Benennen der Daten im Cache gespeichert werden

$redis = new \Redis(); 
//创建一个redis对象,下面可以直接使用$redis访问到redis对象

$redis->connect(&#39;127.0.0.1&#39;, 6379);
//连接redis数据库,127.0.0.1表示本地(如果线上redis和php目录在同一个IP,则一样使用127.0.0.1),6379为redis端口号,若线上没有修改则默认是这个
Nach dem Login kopieren

Oft speichern wir Daten vom Array-Typ, aber Redis unterstützt das Lesen und Schreiben von Arrays nicht, daher müssen wir das Array in JSON konvertieren Format

$redis ->set( "test" , "redis 连接成功");
echo $redis ->get( "test");
Nach dem Login kopieren

get()

get() zum Abrufen des Schlüsselwerts, der Parameter ist der Schlüsselname. Mit dieser Methode kann der im entsprechenden Schlüssel gespeicherte Wert abgerufen werden

$redis->exists(&#39;active_worker_list&#39;)
Nach dem Login kopieren

Dasselbe wie eingestellt, oft brauchen wir Daten vom Array-Typ, daher müssen wir die Daten im JSON-Format in ein Array konvertieren der Schlüsselwert, also müssen wir del() verwenden, und der Parameter ist der Schlüsselname

$result = $redis->set(&#39;active_worker_list&#39;,$r)
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWas ist die Methode zur Verwendung von Redis im ThinkPHP-Framework in Pagoda?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:yisu.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage