swoole多协程方式获取redis里面同一个值,有部分数据为false
$cnt = 1000;
for ($i = 0; $i < $cnt; $i++) {
go(function () {
$redis = new Co\Redis();
$redis->connect('127.0.0.1', 6379);
$key = $redis->get('key');
var_dump($key);
});
}
输出
...
string(3) "123"
string(3) "123"
string(3) "123"
string(3) "123"
string(3) "123"
bool(false)
bool(false)
bool(false)
string(3) "123"
bool(false)
bool(false)
...
redis存放的数据以及redis客户端最大连接数设置
127.0.0.1:6379> get key
"123"
127.0.0.1:6379> CONFIG GET maxclients
1) "maxclients"
2) "4064"
实践过将$cnt改小(100或200)没有出现false情况。不知道为什么1000的时候会出现这种情况
我测试了没有问题呀!你可以
$cnt = 1000;
for ($i = 0; $i < $cnt; $i++) {
}