Maison > base de données > Redis > le corps du texte

Quelle est la méthode d'utilisation de Redis dans le framework ThinkPHP dans Pagoda ?

王林
Libérer: 2023-06-02 20:31:01
avant
1016 Les gens l'ont consulté

Redis est une base de données non relationnelle couramment utilisée, principalement utilisée pour la mise en cache des données. Les données sont enregistrées sous forme de clé-valeur et les valeurs clés sont mappées les unes aux autres. Son stockage de données est différent de celui de MySQL. Ses données sont stockées en mémoire, la lecture des données est donc relativement rapide, ce qui est très bon pour une concurrence élevée.

Concernant l'installation de redis, installez le panneau pagode sur le serveur ou la machine virtuelle pour installer redis, afin de pouvoir utiliser redis très facilement. N'oubliez pas lors de l'installation de redis, vous devez non seulement installer le logiciel redis, mais également saisir le PHP. version utilisée par le projet pour installer redis Développez puis ouvrez le logiciel redis

1 Tout d'abord, recherchez redis dans le panneau d'installation de la pagode et cliquez pour installer.

Quelle est la méthode dutilisation de Redis dans le framework ThinkPHP dans Pagoda ?

2. Après avoir installé redis, cliquez sur Paramètres et définissez un mot de passe

3 Installez l'extension redis dans l'environnement php

Assurez-vous d'installer l'extension redis dans la version php utilisée par le site Web.

Créez un plug-in

Créez le fichier RedisPackage.php dans le dossier extend du répertoire racine de ThinkPHP. Le contenu est le suivant :

<?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);
    }
 
 
}
Copier après la connexion

Le tableau de définition $options dans la classe RedisPackage. mot de passe. Remplissez le mot de passe redis défini ci-dessus

Introduisez le fichier

import(&#39;RedisPackage&#39;, EXTEND_PATH);
Copier après la connexion

Utilisez simplement Redis

#设置
\RedisPackage::set(&#39;要设置的key&#39;,&#39;这是value&#39;);
 
#获取
$key = \RedisPackage::get(&#39;已设置的key&#39;));
Copier après la connexion

Extension Redis

Connectez-vous à redis

$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端口号,若线上没有修改则默认是这个
Copier après la connexion

Vérifiez si la connexion est réussie (en écriture ou non, vérifiez simplement)

$redis ->set( "test" , "redis 连接成功");
echo $redis ->get( "test");
Copier après la connexion
.

exists() Déterminez si la clé existe. Le paramètre est le nom de la clé

$redis->exists(&#39;active_worker_list&#39;)
Copier après la connexion

set()

set() pour stocker la valeur de la clé. Le premier paramètre est le nom de la clé défini par vous-même et le deuxième paramètre est le. données à stocker. Grâce à cette méthode, vous pouvez Une fois les données nommées, elles sont stockées dans le cache

$result = $redis->set(&#39;active_worker_list&#39;,$r)
Copier après la connexion

Souvent, nous stockons des données de type tableau, mais Redis ne prend pas en charge la lecture et l'écriture de tableaux, nous devons donc convertir les données. tableau au format json

$result = $redis->set(&#39;active_worker_list&#39;,json_encode($r,true))
Copier après la connexion

get()

get() pour obtenir la valeur de la clé, le paramètre est le nom de la clé Grâce à cette méthode, la valeur stockée dans la clé correspondante peut être obtenue

$result = $redis->get(&#39;active_worker_list&#39;)
Copier après la connexion

Identique à set, many. Parfois, nous avons besoin de données de type tableau, nous devons donc convertir les données au format json en tableau

$result = json_decode($redis->get(&#39;active_worker_list&#39;),true);
Copier après la connexion

del()

Parfois, pour certaines raisons (il se peut que l'affectation soit erronée lors de la simple attribution de la valeur...), nous nous devons supprimer la valeur de la clé, nous devons donc utiliser del(), et le paramètre est le nom de la clé

$redis->del(&#39;active_worker_list&#39;);
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:yisu.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal