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

Comment utiliser et encapsuler Redis dans le framework ThinkPHP5

WBOY
Libérer: 2023-05-29 20:40:10
avant
1147 Les gens l'ont consulté

Redis est une base de données non relationnelle couramment utilisée. Elle est 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. Ses données sont stockées en mémoire, donc la lecture des données est relativement rapide et très efficace pour une concurrence élevée.

Avant d'utiliser l'extension Redis fournie avec ThinkPHP5.0, vous devez d'abord télécharger php_redis.dll. Choisissez la version correspondante en fonction de votre propre système d'exploitation Windows. Mon système est 64 bits et j'ai installé VC2012, j'ai donc téléchargé php_redis-2.2.7-5.6-ts-vc11-x64.zip

Après avoir téléchargé le package compressé, mettez l'intérieur Décompressez php_redis.dll dans D:wampbinphpphp5.6.25ext (choisissez en fonction du disque où se trouve votre wamp), puis ajoutez extension=php_redis.dll dans php.ini et redémarrez Apache

Ce qui suit est mon propre test ; le code peut être utilisé, il n'y a pas beaucoup de packages, vous pouvez le conditionner selon vos propres besoins

étendre est 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);
    }
}
Copier après la connexion
namespace app\index\controller;
use think\Controller;
use My\RedisPackage;

class Redis extends Controller
{
    function redis()
    {
        $redis=new RedisPackage();
        $redis::set('dede','我就笑笑');
        echo $redis::get('dede');
    }
}
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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!