亚洲精品成人_精品成人一区_999视频在线播放_免费黄色在线_亚洲成人久久久_久久www免费视频

redis協程客戶端

雖然swoole有著自帶的協程客戶端,但是在生產環境中我們發現了一些問題:
swoole的redis客戶端并沒有完全支持redis的全部命令,比如geo搜索,還有事務,特別是集群模式的redis,swoole客戶端并不支持。為此,我們決定用swoole的tcp客戶端實現一個完整版的redis客戶端。

目前,該redis客戶端組件,已經支持除去腳本外的所有方法(目前支持了178個方法):

  • 連接方法(connection)
  • 集群方法(cluster)
  • geohash
  • 哈希(hash)
  • 鍵(keys)
  • 列表(lists)
  • 訂閱/發布(pub/sub)
  • 服務器(server)
  • 字符串(string)
  • 有序集合(sorted sets)
  • 集合 (sets)
  • 事務 (transaction)
  • 管道實現 (pipe)

由于redis的命令較多,可能漏掉1,2個命令

組件要求

  • php: >=7.1.0
  • ext-swoole: ^4.4.0
  • easyswoole/spl: ^1.2

安裝方法

composer require easyswoole/redis

倉庫地址

easyswoole/redis

基本使用

redis 單機配置

redis 在實例化時,需要傳入\EasySwoole\Redis\Config\RedisConfig實例:

配置名 默認參數 說明 備注
host 127.0.0.1 redis ip
port 6379 redis端口
unixSocket null unixSocket文件路徑 此參數配置后,將忽略host,port參數,直接通過UnixSocket連接.(>=1.3.0才可使用)
auth auth密碼
db null redis數據庫 當db配置不等于null時,在connect的時候會自動select該配置
timeout 3.0 超時時間
reconnectTimes 3 客戶端異常重連次數
serialize SERIALIZE_NONE 數據是否序列化 序列化參數有:SERIALIZE_NONE,SERIALIZE_PHP,SERIALIZE_JSON

redis 單機配置示例

$config = new \EasySwoole\Redis\Config\RedisConfig([
    'host'      => '127.0.0.1',
    'port'      => '6379',
    'auth'      => 'easyswoole',
    'db'        => null,
    'serialize' => \EasySwoole\Redis\Config\RedisConfig::SERIALIZE_NONE
]);

redis集群配置

redis 集群在實例化時,需要傳入\EasySwoole\Redis\Config\RedisConfig實例:

$config = new \EasySwoole\Redis\Config\RedisClusterConfig([
    ['172.16.253.156', 9001],
    ['172.16.253.156', 9002],
    ['172.16.253.156', 9003],
    ['172.16.253.156', 9004],
], [
    'auth' => '',
    'serialize' => \EasySwoole\Redis\Config\RedisConfig::SERIALIZE_PHP
]);

集群配置先傳入一個ip,port的多維數組,再傳入其他配置項,其他配置項和redis單機配置一致

需要注意,auth密碼需要集群所有節點相同,只支持一個密碼

redis單機使用示例

使用redis客戶端(需要協程環境)

<?php
include "../vendor/autoload.php";
go(function (){
    $redis = new \EasySwoole\Redis\Redis(new \EasySwoole\Redis\Config\RedisConfig([
        'host' => '127.0.0.1',
        'port' => '6379',
        'auth' => 'easyswoole',
        'serialize' => \EasySwoole\Redis\Config\RedisConfig::SERIALIZE_NONE
    ]));
    var_dump($redis->set('a',1));
    var_dump($redis->get('a'));
});

redis集群使用示例

<?php
include "../vendor/autoload.php";
go(function () {
    $redis = new \EasySwoole\Redis\RedisCluster(new \EasySwoole\Redis\Config\RedisClusterConfig([
        ['172.16.253.156', 9001],
        ['172.16.253.156', 9002],
        ['172.16.253.156', 9003],
        ['172.16.253.156', 9004],
    ], [
        'auth' => '',
        'serialize' => \EasySwoole\Redis\Config\RedisConfig::SERIALIZE_PHP
    ]));
    var_dump($redis->set('a',1));
    var_dump($redis->get('a'));
    var_dump($redis->clusterKeySlot('a'));

});

回調事件

redis組件中,自定義了2個回調事件,用于代碼跟蹤調試,可在config中設置:

<?php
$redisConfig = new RedisConfig([
   'host' => REDIS_HOST,
   'port' => REDIS_PORT,
   'auth' => REDIS_AUTH,
]);
// 命令執行之前將調用
$redisConfig->onBeforeEvent(function ($commandName,$commandData){
   var_dump ($commandName,$commandData);
});
//命令獲取到結果后將調用
$redisConfig->onAfterEvent(function ($commandName,$commandData,$result){
   var_dump ($commandName,$commandData,$result);
});

回調事件支持事務,pipe.
在pipe模式中,只有最后excePipe時才會調用回調事件.

異常處理

redis組件根據錯誤的級別,區分了2種錯誤信息

異常

當redis連接失敗,無法和redis服務通信時,將會拋出EasySwoole\Redis\Exception\RedisException 異常,例如配置錯誤:

PHP Fatal error:  Uncaught EasySwoole\Redis\Exception\RedisException: connect to redis host 127.0.0.1:6379 fail after retry 4 times in /www/easyswoole/tioncico_redis/src/Redis.php:2866
Stack trace:
#0 /www/easyswoole/tioncico_redis/src/Redis.php(579): EasySwoole\Redis\Redis->sendCommand(Array)
#1 /www/easyswoole/tioncico_redis/tests/test.php(17): EasySwoole\Redis\Redis->get('a')
#2 {main}
  thrown in /www/easyswoole/tioncico_redis/src/Redis.php on line 2866

接管異常

go(function () {

    $redisConfig = new \EasySwoole\Redis\Config\RedisConfig();
    $redisConfig->setAuth('easyswoole');
    $redis = new \EasySwoole\Redis\Redis($redisConfig);
    try{

        $data = $redis->rawCommand(['set','a','1','1']);//多了一個參數,redis將會報語法錯誤
         var_dump($data);

    }catch (\EasySwoole\Redis\Exception\RedisException $exception){

        var_dump($exception->getMessage());
        var_dump($exception->getRedisErrorCode());
        var_dump($exception->getRedisErrorMsg());
    }
});
亚洲精品成人_精品成人一区_999视频在线播放_免费黄色在线_亚洲成人久久久_久久www免费视频
  • <kbd id="eqi2k"><code id="eqi2k"></code></kbd><cite id="eqi2k"><tbody id="eqi2k"></tbody></cite>
    在线观看欧美亚洲| 亚洲每日在线| 亚洲综合精品| 在线视频亚洲自拍| 久久大香伊蕉在人线观看热2| 亚洲一区三区视频在线观看| 欧美 日韩 国产精品免费观看| 国产一级特黄a大片99| 久久精品国产99精品国产亚洲性色| 欧美视频亚洲视频| 欧美~级网站不卡| 亚洲国产日韩综合一区| 久久久久久欧美精品色一二三四| 老司机精品导航| 亚洲永久网站| 一区二区黄色| 国产日韩精品视频一区二区三区| 欧美日韩国产一区精品一区| 中文字幕一区二区中文字幕| 先锋影音日韩| 亚洲精品一区二区三| 亚洲一区二区三区精品在线观看 | 亚洲国产婷婷| 精品二区久久| 亚洲精品孕妇| 国产农村妇女精品一区二区| 一区二区福利| 国产精品久久波多野结衣| 一本一道久久综合狠狠老精东影业| 亚洲国产成人不卡| 99爱精品视频| 国产伦精品一区二区三区视频孕妇 | 伊人久久亚洲热| 免费国产一区二区| 日本一区免费| 制服诱惑一区| 狠狠色丁香久久综合频道| 亚洲性感美女99在线| 99香蕉国产精品偷在线观看 | 久久大片网站| 欧美重口乱码一区二区| 亚洲精品国产一区| 欧美日韩福利| 国产精品五区| 国产九区一区在线| 日本欧美精品久久久| 欧美1区视频| 99精品免费视频| 99精彩视频| 品久久久久久久久久96高清| 中文字幕中文字幕99| 99精品视频免费观看视频| 久久久久久一区二区| 久久精品ww人人做人人爽| 综合久久国产| 98国产高清一区| 欧美xxxx黑人又粗又长精品| 一区二区高清视频| 国产精品乱码一区二区三区| 国产区欧美区日韩区| 手机成人在线| 亚洲欧美日韩专区| 欧美日韩在线观看一区二区三区| 尤物国产精品| 91蜜桃网站免费观看| 日韩精品一区二区三区丰满 | 日本一区二区视频| 亚洲国产精品一区在线观看不卡 | 西游记1978| 久久久精品动漫| 亚洲欧美日产图| 羞羞视频在线观看欧美| 清纯唯美一区二区三区| 一二三区精品| 亚洲国产婷婷香蕉久久久久久99| 在线一区免费观看| 新呦u视频一区二区| 国产精品久久久对白| 日韩久久不卡| 91超碰rencao97精品| 国产精品a级| 久久综合中文色婷婷| 99精品视频免费| 亚洲综合首页| 国产自产精品| 国产精品美女xx| 在线观看日韩羞羞视频| 国产精品视频免费一区| 一区二区三区国产盗摄| 亚洲精品tv久久久久久久久| 999日本视频| 夜夜嗨网站十八久久 | 相泽南亚洲一区二区在线播放| 亚洲在线国产日韩欧美| 欧美日韩一区二区视频在线| 欧美精品国产精品久久久| 亚欧成人精品| 国产欧美日韩视频一区二区三区| 亚洲一区二区三区欧美| 久久久久久久久久久一区| 性刺激综合网| 亚洲精品一区二区三区av| 在线观看欧美一区| 青青草原亚洲| 久久精品丝袜高跟鞋| 动漫美女被爆操久久久| 国产视频精品网| 精品91久久久久| 国产一区高清视频| 亚洲最大色综合成人av| 鲁丝片一区二区三区| 久久99精品久久久久久水蜜桃| 性高湖久久久久久久久| 正在播放亚洲| 国产精品区一区| 亚洲欧洲日本mm| 一区国产精品| 亚洲激情影院| 亚洲福利久久| 国产亚洲一区在线| 国产一区白浆| 国产亚洲午夜| 久久不射网站| 久久婷婷影院| 国产精品国产精品国产专区蜜臀ah| 亚洲欧美日韩精品综合在线观看| 国产一级久久| 99久久精品免费看国产四区 | 欧美日韩三区| 亚洲精选在线| 久久久久se| 成人动漫视频在线观看完整版| 久久久国产精品一区二区中文| 91日韩久久| 久久精品国产精品国产精品污| 免费在线成人av| 一区二区视频国产| 影音先锋中文字幕一区| 色一情一乱一伦一区二区三区丨 | 日本视频一区在线观看| 一区二区三区视频| 在线欧美福利| 久久综合久久久| 免费99视频| 五月天亚洲综合| 激情综合在线| 久久人人97超碰人人澡爱香蕉| 国产精品久久久一区二区三区| 蜜桃传媒视频麻豆一区 | 欧美激情1区2区3区| 激情一区二区| 高清国语自产拍免费一区二区三区| 精品999在线观看| 中文字幕不卡每日更新1区2区| 欧美日韩综合精品| 久久青青草原一区二区| 日产精品久久久一区二区| 欧美三区视频| 岛国一区二区三区高清视频| 伊人狠狠色丁香综合尤物| 在线视频精品| 牛人盗摄一区二区三区视频| 午夜精品视频在线观看一区二区| 国产日韩一区二区| 欧美深深色噜噜狠狠yyy| 国语自产精品视频在线看8查询8| 爱情岛论坛亚洲入口| 最新精品视频| 国产美女精品在线观看| 欧美日韩国产色综合一二三四| 久久一区国产| 一区二区三区四区五区精品| 久久欧美肥婆一二区| 亚洲一区二区三区加勒比| 亚洲欧美日韩精品久久久| 亚洲成人午夜在线| 性色一区二区三区| 欧美黄色精品| 黄色99视频| 国产欧美91| 在线观看日韩片| 国产一区二区不卡视频| 亚洲精品麻豆| 亚洲国产高清国产精品| 成人综合色站| 欧美日韩国产综合网| 国产一区二区免费电影| 制服诱惑一区二区| 一本一本久久a久久精品综合妖精| 久久国产主播| 亚洲毛片视频| 中文字幕在线亚洲精品| 麻豆传媒一区| 久久一区免费| 99精品国产福利在线观看免费| 欧美区高清在线| 国产精品美女xx| 2022国产精品| 国产午夜精品在线| 在线欧美一区|