日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

Laravel 不添加配置文件實現 Redis 切換庫和設置 key 前綴

作者:笑逐顏凱 更新時間: 2022-10-11 編程語言

由于不同項目需要跨 Redis 庫來實現相關數據操作。
正常情況下,我們可以通過 config/database.php 來增加相應配置選項即可。如果不想通過添加文件來實現跨庫操作可簡單如下操作:

use Illuminate\Support\Facades\Redis;

// 默認連接配置
$redis = Redis::connection('default');
// 設置連接 2 庫
$redis->select(2);
// 設置 key 的前綴
$redis->setOption(\Redis::OPT_PREFIX, 'prefix:2'); 
// 操作 2 庫的相關數據
$a = $redis->get($key2);
// 設置連接 1 庫
$redis->select(1);
// 設置 key 的前綴
$redis->setOption(\Redis::OPT_PREFIX,'prefix:1');
// 操作 1 庫的相關數據
$b = $redis->get($key1);

這是偷懶的寫法,但是簡單,不用去配置。

另外,還有很多操作都類似,在對象中調用一個不可訪問方法時調用:
src/Illuminate/Redis/Connections/Connection.php


    /**
     * Pass other method calls down to the underlying client.
     *
     * @param  string  $method
     * @param  array  $parameters
     * @return mixed
     */
    public function __call($method, $parameters)
    {
        if (static::hasMacro($method)) {
            return $this->macroCall($method, $parameters);
        }

        return $this->command($method, $parameters);
    }

最后謝謝來自 Rache1 建議:

最好不要讓你的代碼充滿魔法,Redis::connection?是會保存連接的,如果你在 A 方法設置了,忘了重置,到 B 方法的時候,還會保持舊的設置,這會讓代碼充滿未知性。

如果有更好的解決方法請私信或留言,歡迎交流!

原文鏈接:https://blog.csdn.net/xzykai/article/details/127249496

欄目分類
最近更新