Laravel 不添加配置文件实现 Redis 切换库和设置 key 前缀

由于不同项目需要跨 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 方法的时候,还会保持旧的设置,这会让代码充满未知性。

如果有更好的解决方法请私信或留言,欢迎交流!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

笑逐颜凯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值