ThinkPHP6 での複数の Redis クラスの実装について

藏色散人
リリース: 2020-09-08 09:51:41
転載
5687 人が閲覧しました

次のチュートリアル コラムでは、ThinkPHP6 での複数の Redis クラスの実装を紹介します。困っている友人の役に立てば幸いです。

ThinkPHP6 での複数の Redis クラスの実装について

#Redis マルチプロジェクトを Thinkphp プロジェクトにカプセル化するライブラリ シングルトン操作クラス

1. 操作前の準備

#phpredis モジュールがインストールされていない場合は、最初に実行してください

composer require predis/predis
ログイン後にコピー
2. Redis 接続情報を構成します

app\config\cache.phpで構成します

'redis' => [
   // 驱动方式
    'type'       => 'redis',
    // 连接地址
    'host'       => Env::get('redis.host'),
    // 端口
    'port'       => Env::get('redis.port'),],
ログイン後にコピー
その他の構成リファレンス
/**
 * 配置参数
 * @var array
 */protected $options = [
    'host'       => '127.0.0.1',
    'port'       => 6379,
    'password'   => '',
    'select'     => 0,
    'timeout'    => 0,
    'expire'     => 0,
    'persistent' => false,
    'prefix'     => '',
    'tag_prefix' => 'tag:',
    'serialize'  => [],];
ログイン後にコピー

.envで接続情報を構成します

[REDIS]host = 127.0.0.1
port = 6379
ログイン後にコピー

3. コードを記述します

app\common

<?phpnamespace app\common;use think\facade\Config;use think\cache\driver\redis as ThinkRedis;class Redis extends ThinkRedis{
    /**
     * @var int
     */
    protected $hash;

    /**
     * @var array
     */
    protected static $instance = [];

    /**
     * Redis constructor.
     * @param $db
     */
    private function __construct($db)
    {
        $options = Config::get(&#39;cache.stores.redis&#39;);
        $options[&#39;select&#39;] = $db;
        $this->hash = $db;
        $this->options = array_merge($this->options, $options);
        parent::__construct();
    }

    private function __clone()
    {
    }

    /**
     * @param int $db
     * @return \Predis\Client|\Redis
     */
    public static function instance($db = 0)
    {
        if (! isset(self::$instance[$db])) {
            self::$instance[$db] = new self($db);
        }

        return self::$instance[$db];
    }

    public function __destruct()
    {
        self::$instance[$this->hash]->close();
        unset(self::$instance[$this->hash]);
    }}
ログイン後にコピー
4 にファイル Redis.php を作成します。使用方法

use app\common\Redis;

$redis = Redis::instance(4);
$redis->hSet(&#39;user:1&#39;, &#39;userName&#39;, &#39;admin&#39;);

Redis::instance(1)->hSet(&#39;user&#39;, &#39;name&#39;, &#39;admin1&#39;);
Redis::instance(2)->hSet(&#39;user&#39;, &#39;name&#39;, &#39;admin2&#39;);
Redis::instance(3)->hSet(&#39;user&#39;, &#39;name&#39;, &#39;admin3&#39;);
ログイン後にコピー

その他の使用方法については、

redisコマンドマニュアル

を参照してください。

以上がThinkPHP6 での複数の Redis クラスの実装についての詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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