predis set方法很慢很慢,这是什么原因?
程序员文章站
2022-05-17 16:56:25
...
这是我的代码:
redis) {
$cfg = [
'scheme' => env('REDIS_SCHEME', 'tcp'),
'host' => env('REDIS_HOST', '127.0.0.1'),
'port' => env('REDIS_PORT', 6379)
];
$this->redis = new \Predis\Client($cfg);
}
}
/**
* Close the session
* @since 5.4.0
*/
public function close()
{
return true;
}
/**
* Destroy a session
* @return boolean
* @since 5.4.0
*/
public function destroy($session_id)
{
$this->connect();
$this->redis->del($session_id);
return true;
}
/**
* Cleanup old sessions
* @return boolean
* @since 5.4.0
*/
public function gc($maxlifetime)
{
return true;
}
/**
* Initialize session
* @since 5.4.0
*/
public function open($save_path, $sessionName)
{
return true;
}
/**
* Read session data
* @return string
* @since 5.4.0
*/
public function read($session_id)
{
$this->connect();
if($this->redis->exists($session_id)) {
$value = $this->redis->get($session_id);
return $value ? ($value) : '';
} else {
$expire = configure('Ymf.Account.expire');
$this->redis->setex($session_id, $expire, '');
return '';
}
return '';
}
/**
* Write session data
* @return boolean
* @since 5.4.0
*/
public function write($session_id, $sessionData)
{
$this->connect();
file_put_contents(__DIR__ . '/../../write.log', "写入{$sessionData}\r\n", FILE_APPEND);
if($this->redis->set("flf", "hfl")) {
return true;
} else {
return false;
}
}
}
排查只会,发现这个$this->redis->set方法特别慢,什么原因。。。。
回复内容:
这是我的代码:
redis) {
$cfg = [
'scheme' => env('REDIS_SCHEME', 'tcp'),
'host' => env('REDIS_HOST', '127.0.0.1'),
'port' => env('REDIS_PORT', 6379)
];
$this->redis = new \Predis\Client($cfg);
}
}
/**
* Close the session
* @since 5.4.0
*/
public function close()
{
return true;
}
/**
* Destroy a session
* @return boolean
* @since 5.4.0
*/
public function destroy($session_id)
{
$this->connect();
$this->redis->del($session_id);
return true;
}
/**
* Cleanup old sessions
* @return boolean
* @since 5.4.0
*/
public function gc($maxlifetime)
{
return true;
}
/**
* Initialize session
* @since 5.4.0
*/
public function open($save_path, $sessionName)
{
return true;
}
/**
* Read session data
* @return string
* @since 5.4.0
*/
public function read($session_id)
{
$this->connect();
if($this->redis->exists($session_id)) {
$value = $this->redis->get($session_id);
return $value ? ($value) : '';
} else {
$expire = configure('Ymf.Account.expire');
$this->redis->setex($session_id, $expire, '');
return '';
}
return '';
}
/**
* Write session data
* @return boolean
* @since 5.4.0
*/
public function write($session_id, $sessionData)
{
$this->connect();
file_put_contents(__DIR__ . '/../../write.log', "写入{$sessionData}\r\n", FILE_APPEND);
if($this->redis->set("flf", "hfl")) {
return true;
} else {
return false;
}
}
}
排查只会,发现这个$this->redis->set方法特别慢,什么原因。。。。