Rumah  >  Artikel  >  rangka kerja php  >  Bagaimanakah Redis digunakan dan dikapsulkan dalam rangka kerja ThinkPHP5?

Bagaimanakah Redis digunakan dan dikapsulkan dalam rangka kerja ThinkPHP5?

藏色散人
藏色散人ke hadapan
2022-02-04 04:00:313106semak imbas

Lajur tutorial thinkphp berikut akan memperkenalkan kepada anda cara menggunakan dan merangkum Redis dalam ThinkPHP5.0 Saya harap ia akan membantu rakan yang memerlukan!

Redis ialah pangkalan data bukan perhubungan yang biasa digunakan, terutamanya digunakan untuk caching data Data disimpan dalam bentuk nilai kunci, dan storan datanya berbeza daripada MySQL, dan datanya disimpan dalam memori , jadi pembacaan data adalah agak pantas, yang sangat bagus untuk konkurensi tinggi

ThinkPhP5.0 disertakan dengan sambungan Redis, muat turun php_redis.dll di http://windows.net/downloads/pecl/releases/redis/2.2.7/ ;Pilih versi yang sepadan mengikut sistem pengendalian windows anda dan saya memasang VC2012, jadi saya memuat turun php_redis -2.2.7-5.6- ts-vc11-x64.zip

Selepas memuat turun pakej termampat, nyahzip php_redis.dll di dalam ke D:wampbinphpphp5.6.25ext (pilih mengikut cakera tempat wamp anda berada ), dan kemudian dalam php.ini Hanya tambahkan extension=php_redis.dll dan mulakan semula apache; untuk keperluan anda sendiri

lanjutkan ialah thinkPHP5.0's

扩展类库目录,可以自己去定义

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);
    }
}
Pembelajaran yang disyorkan: "
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');
    }
}
tutorial video thinkphp

"

Atas ialah kandungan terperinci Bagaimanakah Redis digunakan dan dikapsulkan dalam rangka kerja ThinkPHP5?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:cnblogs.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam