Easyswoole Redis協程客戶端發佈

EasySwoole Redis協程客戶端發佈

很多人可能都會問,Swoole不是自帶了協程的Redis客戶端嗎?回答是的,感謝swoole開發組的辛勤爲我們開發的redis客戶端。然而,在生產中,我們發現了一些問題。swoole的redis客戶端並沒有完全支持redis的全部命令,比如geo搜索,還有事務,特別是集羣模式的redis,swoole客戶端並不支持。爲此,我們決定用swoole的tcp客戶端實現一個完整版的redis客戶端。
項目地址:https://github.com/easy-swool...
Easyswoole項目主頁:https://github.com/easy-swool... (喜歡記得點個star)
Easyswoole項目官網:https://www.easyswoole.com/

支持方法

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

  • 連接方法(cluster)
  • 集羣方法(connection)
  • geohash
  • 哈希(hash)
  • 鍵(keys)
  • 列表(lists)
  • 訂閱/發佈(pub/sub)
  • 服務器(server)
  • 字符串(string)
  • 有序集合(sorted sets)
  • 集合 (sets)
  • 事務 (transaction)
由於redis的命令較多,可能漏掉1,2個命令

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'));

});
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章