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/php

支持方法

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

  • 鏈接方法(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'));

});
相關文章
相關標籤/搜索