日韩在线观看-日韩在线成人-日韩在线不卡视频-日韩在线不卡视频-国产精品99-国产精品99

場景

在業務量小的情況下,我們使用Redis單機連接池就可以滿足業務需求。因此,redis單機連接池就可以滿足我們的業務。因此我們會這樣寫:

示例

注冊連接池

use EasySwoole\Redis\Config\RedisConfig;
use EasySwoole\RedisPool\Redis;
Redis::getInstance()->register('redis',new RedisConfig());

使用

use EasySwoole\RedisPool\Redis;
use EasySwoole\Redis\Redis as RedisClient
Redis::invoke('redis', function (RedisClient $redis) {
    var_dump($redis->set('a', 1));
});

當業務量上來后,我們需要切換成集群模式的時候怎么辦。因此我們做的應該是:

注冊集群連接池

use EasySwoole\RedisPool\Redis;
use EasySwoole\Redis\Config\RedisClusterConfig;
Redis::getInstance()->register('redis',new RedisClusterConfig([
        ['172.16.253.156', 9001],
        ['172.16.253.156', 9002],
        ['172.16.253.156', 9003],
        ['172.16.253.156', 9004],
    ]
));

老業務代碼

use EasySwoole\RedisPool\Redis;
use EasySwoole\Redis\Redis as RedisClient
Redis::invoke('redis', function (RedisClient $redis) {
    var_dump($redis->set('a', 1));
});

對于之前的老業務代碼,就會出現、、、、此事,我的invoker回調參數是一個EasySwoole\Redis\RedisCluster實例,而非EasySwoole\Redis\Redis, 因此就會導致業務代碼報錯。

解決方案

Easyswoole Redis Pool組件,在2.1.1版本開始,基于easyswoole的magic pool 引入一個cask機制。可以指定實例化的class。

定義一個class

namespace App\Utility;

use EasySwoole\Redis\Redis;

class RedisClient extends Redis
{
    function fuck()
    {
        var_dump('waf');
    }
}

該class繼承自EasySwoole\Redis\Redis

注冊redis

use EasySwoole\Redis\Config\RedisConfig;
use EasySwoole\RedisPool\Redis;
use App\Utility\RedisClient
Redis::getInstance()->register('redis',$config,RedisClient::class);

使用redis

use EasySwoole\RedisPool\Redis;
use App\Utility\RedisClient
Redis::invoke('redis', function (RedisClient $redis) {
    var_dump($redis->set('a', 1));
});

遷移集群

修改注冊配置

use EasySwoole\RedisPool\Redis;
use EasySwoole\Redis\Config\RedisClusterConfig;
Redis::getInstance()->register('redis',new RedisClusterConfig([
        ['172.16.253.156', 9001],
        ['172.16.253.156', 9002],
        ['172.16.253.156', 9003],
        ['172.16.253.156', 9004],
    ]
),RedisClient::class);

繼承修改

修改App\Utility\RedisClient,讓它繼承EasySwoole\Redis\RedisCluster即可

而由于redis單機客戶端與集群客戶端的方法幾乎一致,因此可以不修改任何業務代碼,就是實現單機到集群的遷移

主站蜘蛛池模板: 艳堂| abo血型鉴定实验报告| 十一码复式22块钱中奖对照表| 奇妙的植物世界阅读短文答案| 啊嗯啊嗯| 秦江池姜小说免费阅读全文最新章节| 赵健的读书日记| 古宅| 张柏芝艳照视频| 抗日电影大突围完整版| av网址大全| 1905电影网| 雪中悍刀行第一季电视剧免费观看| 守株待兔评课| 乱世三人行| 安珀·赫德| 李英恩| 古今大战秦俑情电影| 电影白洁少妇完整版| 大尺度激情戏片段| 刑事侦缉档案3演员表| 敬天法祖| 小孩几个月会翻身| 李采潭和闵度允| 变形金刚6免费完整版在线观看| 南方车站的聚会| 今日航班一览表| 菲律宾电影毕业生代表| 《剪窗花》童谣| 日韩女同性恋| 理发师的情人电影| 李乃文宋丹丹朱媛媛演的电视剧| 黑帮大佬和我的第365天| 147顶级艺术人像摄影| 战长沙每个人的结局| 变形记开头结尾优美段落| 欧美gv网站| 台风电影| 触底反弹电影| 女孩们在线观看完整电影| 电视剧《反击》主要演员|