首页
下载
文档
社区
视频
捐赠
源代码
赞助商
AOT 编译器
AI 助理
商业产品
PHP AOT 原生编译器
Swoole-Compiler 代码加密器
CRMEB 新零售社交电商系统
登录
注册
全部
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
发表新帖
Swoole\Redis\Server 返回MAP或者SET时报错,有遇到同样问题的同学么?怎么解决的?
swoole版本:1.9.6,客户端:phpredis,版本:3.1.1 错误信息:WARNING swManager_check_exit_status: worker#7 abnormal exit, status=0, signal=11 服务器端代码: ```php $server->setHandler('sAdd', function ($fd, $data) use ($server) { if (count($data) < 2) { return Server::format(Server::ERROR, "ERR wrong number of arguments for 'sAdd' command"); } $key = $data[0]; if (!isset($server->data[$key])) { $server->data[$key] = array(); } $count = 0; $dcount = count($data); for($i = 1; $i < $dcount; $i++) { $value = $data[$i]; if (isset($server->data[$key][$value])) { continue; } $server->data[$key][$value] = 1; ++ $count; } return Server::format(Server::INT, $count); }); $server->setHandler('sMembers', function ($fd, $data) use ($server) { if (count($data) < 1) { return Server::format(Server::ERROR, "ERR wrong number of arguments for 'sMembers' command"); } $key = $data[0]; if (!isset($server->data[$key])) { return Server::format(Server::NIL); } return Server::format(Server::SET, array_keys($server->data[$key])); }); ``` 客户端访问时,无数据可以正常返回false,有数据时报错: ```php $redis = new Redis(); $redis->connect('127.0.0.1', 9507); $redis->set('a', '123'); var_dump($redis->get('a')); //string(3) "123" var_dump($redis->del('a')); //int(1) var_dump($redis->get('a')); //bool(false) var_dump($redis->sAdd('a', 1, 2, 3, 4)); //int(4) var_dump($redis->sMembers('a')); //等待10几秒后报错 //PHP Warning: Uncaught RedisException: read error on connection in php shell code:1 //Stack trace: //#0 php shell code(1): Redis->sMembers('a') //#1 {main} // thrown in php shell code on line 1 ```
发布于8年前 · 1 次浏览 · 来自
提问
*
******
swoole版本:1.9.6,客户端:phpredis,版本:3.1.1 错误信息:WARNING swManager_check_exit_status: worker#7 abnormal exit, status=0, signal=11 服务器端代码: ```php $server->setHandler('sAdd', function ($fd, $data) use ($server) { if (count($data) < 2) { return Server::format(Server::ERROR, "ERR wrong number of arguments for 'sAdd' command"); } $key = $data[0]; if (!isset($server->data[$key])) { $server->data[$key] = array(); } $count = 0; $dcount = count($data); for($i = 1; $i < $dcount; $i++) { $value = $data[$i]; if (isset($server->data[$key][$value])) { continue; } $server->data[$key][$value] = 1; ++ $count; } return Server::format(Server::INT, $count); }); $server->setHandler('sMembers', function ($fd, $data) use ($server) { if (count($data) < 1) { return Server::format(Server::ERROR, "ERR wrong number of arguments for 'sMembers' command"); } $key = $data[0]; if (!isset($server->data[$key])) { return Server::format(Server::NIL); } return Server::format(Server::SET, array_keys($server->data[$key])); }); ``` 客户端访问时,无数据可以正常返回false,有数据时报错: ```php $redis = new Redis(); $redis->connect('127.0.0.1', 9507); $redis->set('a', '123'); var_dump($redis->get('a')); //string(3) "123" var_dump($redis->del('a')); //int(1) var_dump($redis->get('a')); //bool(false) var_dump($redis->sAdd('a', 1, 2, 3, 4)); //int(4) var_dump($redis->sMembers('a')); //等待10几秒后报错 //PHP Warning: Uncaught RedisException: read error on connection in php shell code:1 //Stack trace: //#0 php shell code(1): Redis->sMembers('a') //#1 {main} // thrown in php shell code on line 1 ```
赞
0
收藏
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
登录
后参与评论
评论
2018-07-11
a
albin
底层的BUG,已修复。
赞
0
回复