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'));
});
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。