Pagoda の ThinkPHP フレームワークで Redis を使用する方法は何ですか?

王林
リリース: 2023-06-02 20:31:01
転載
1017 人が閲覧しました

Redis は一般的に使用される非リレーショナル データベースであり、主にデータ キャッシュに使用されます。データはキーと値の形式で保存され、キーと値は相互にマッピングされます。データ ストレージは MySQL とは異なり、データはメモリに保存されるため、データの読み取りが比較的速く、高い同時実行性に非常に適しています。

Redis のインストールに関しては、redis をインストールするサーバーまたは仮想マシンに pagoda パネルをインストールすると、非常に簡単に redis を使用できるようになります。プロジェクトで使用される php も入力します バージョンに redis 拡張機能をインストールし、redis ソフトウェアを開きます

1. まず、パゴダのインストール パネルで redis を見つけ、クリックしてインストールします。

Pagoda の ThinkPHP フレームワークで Redis を使用する方法は何ですか?

2. Redis をインストールした後、[設定] をクリックしてパスワードを設定します

3. PHP 環境に Redis 拡張機能をインストールする場合

Web サイトで使用されている PHP バージョンに、redis 拡張機能をインストールする必要があります。

プラグインの作成

ThinkPHP ルート ディレクトリの extend フォルダーにファイル RedisPackage.php を作成します。内容は次のとおりです:

<?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);
    }
 
 
}
ログイン後にコピー

定義配列 $optionsクラス RedisPackage にはキーがあります 名前はパスワードです。ここに上で設定した Redis パスワードを入力します

ファイルの紹介

import(&#39;RedisPackage&#39;, EXTEND_PATH);
ログイン後にコピー

Redis の簡単な使い方

#设置
\RedisPackage::set(&#39;要设置的key&#39;,&#39;这是value&#39;);
 
#获取
$key = \RedisPackage::get(&#39;已设置的key&#39;));
ログイン後にコピー

Redis 拡張機能

Redis を使用するコントローラー内

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端口号,若线上没有修改则默认是这个
ログイン後にコピー

接続が成功したかどうかを確認します (書き込み可能かどうか、検証のみを目的としています)

$redis ->set( "test" , "redis 连接成功");
echo $redis ->get( "test");
ログイン後にコピー

exists() は、 key が存在する場合、パラメータはキー名です

$redis->exists(&#39;active_worker_list&#39;)
ログイン後にコピー

set()

set() はキーの値を格納します。最初のパラメータは自分で定義したキー名、2 番目のパラメータはデータですこのメソッドを使用すると、データに名前を付けてキャッシュに保存できます。

$result = $redis->set(&#39;active_worker_list&#39;,$r)
ログイン後にコピー

多くの場合、配列型のデータを保存しますが、Redis は配列の読み取りと書き込みをサポートしていないため、配列を変換する必要があります。配列を json 形式に変換します

$result = $redis->set(&#39;active_worker_list&#39;,json_encode($r,true))
ログイン後にコピー

get()

get() はキー値を取得します。パラメーターはキー名です。このメソッドを通じて、対応するキーに格納されている値を取得できます

$result = $redis->get(&#39;active_worker_list&#39;)
ログイン後にコピー

設定と同様に、配列型のデータが必要になることが多いため、json 形式のデータを配列に変換する必要があります

$result = json_decode($redis->get(&#39;active_worker_list&#39;),true);
ログイン後にコピー

del()

場合によっては、何らかの理由で (単純に値を割り当てる場合、割り当てが間違っている可能性があります...) キーの値を削除する必要があるため、del() を使用する必要があります。パラメーターはキー名です

$redis->del(&#39;active_worker_list&#39;);
ログイン後にコピー

以上がPagoda の ThinkPHP フレームワークで Redis を使用する方法は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:yisu.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート