mirror of
https://gitee.com/fastadminnet/framework.git
synced 2026-07-07 07:12:47 +08:00
改进redisd驱动
This commit is contained in:
26
library/think/cache/driver/Redisd.php
vendored
26
library/think/cache/driver/Redisd.php
vendored
@@ -131,7 +131,7 @@ class Redisd
|
|||||||
|
|
||||||
$this->handler->$func($host, $port, $this->options['timeout']);
|
$this->handler->$func($host, $port, $this->options['timeout']);
|
||||||
|
|
||||||
if ($this->options ['password'] != null) {
|
if (null != $this->options['password']) {
|
||||||
$this->handler->auth($this->options['password']);
|
$this->handler->auth($this->options['password']);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -165,12 +165,13 @@ class Redisd
|
|||||||
//$this->handler->slaveof();
|
//$this->handler->slaveof();
|
||||||
} else {
|
} else {
|
||||||
//尝试failover,如果有其它节点则进行其它节点的尝试
|
//尝试failover,如果有其它节点则进行其它节点的尝试
|
||||||
foreach ($this->options["server_slave"] as $k=>$v)
|
foreach ($this->options["server_slave"] as $k => $v) {
|
||||||
{
|
if (trim($v) == trim($host)) {
|
||||||
if (trim($v) == trim($host))
|
|
||||||
unset($this->options["server_slave"][$k]);
|
unset($this->options["server_slave"][$k]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
//如果无可用节点,则抛出异常
|
//如果无可用节点,则抛出异常
|
||||||
if (!count($this->options["server_slave"])) {
|
if (!count($this->options["server_slave"])) {
|
||||||
Log::record("已无可用Redis读节点", Log::ERROR);
|
Log::record("已无可用Redis读节点", Log::ERROR);
|
||||||
@@ -197,8 +198,6 @@ class Redisd
|
|||||||
*/
|
*/
|
||||||
public function get($name)
|
public function get($name)
|
||||||
{
|
{
|
||||||
Cache::$readTimes++;
|
|
||||||
|
|
||||||
$this->master(false);
|
$this->master(false);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
@@ -217,7 +216,7 @@ class Redisd
|
|||||||
$jsonData = $value ? json_decode($value, true) : $value;
|
$jsonData = $value ? json_decode($value, true) : $value;
|
||||||
}
|
}
|
||||||
|
|
||||||
return ($jsonData === NULL) ? $value : $jsonData;
|
return (null === $jsonData) ? $value : $jsonData;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -231,8 +230,6 @@ class Redisd
|
|||||||
*/
|
*/
|
||||||
public function set($name, $value, $expire = null)
|
public function set($name, $value, $expire = null)
|
||||||
{
|
{
|
||||||
Cache::$writeTimes++;
|
|
||||||
|
|
||||||
$this->master(true);
|
$this->master(true);
|
||||||
|
|
||||||
if (is_null($expire)) {
|
if (is_null($expire)) {
|
||||||
@@ -247,7 +244,7 @@ class Redisd
|
|||||||
*/
|
*/
|
||||||
$value = (is_object($value) || is_array($value)) ? json_encode($value) : $value;
|
$value = (is_object($value) || is_array($value)) ? json_encode($value) : $value;
|
||||||
|
|
||||||
if ($value === null) {
|
if (null === $value) {
|
||||||
return $this->handler->delete($this->options['prefix'] . $name);
|
return $this->handler->delete($this->options['prefix'] . $name);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -276,7 +273,7 @@ class Redisd
|
|||||||
* @access public
|
* @access public
|
||||||
* @return object
|
* @return object
|
||||||
*/
|
*/
|
||||||
function handler()
|
public function handler()
|
||||||
{
|
{
|
||||||
return $this->handler;
|
return $this->handler;
|
||||||
}
|
}
|
||||||
@@ -290,7 +287,6 @@ class Redisd
|
|||||||
*/
|
*/
|
||||||
public function rm($name)
|
public function rm($name)
|
||||||
{
|
{
|
||||||
Cache::$writeTimes++;
|
|
||||||
$this->master(true);
|
$this->master(true);
|
||||||
return $this->handler->delete($this->options['prefix'] . $name);
|
return $this->handler->delete($this->options['prefix'] . $name);
|
||||||
}
|
}
|
||||||
@@ -303,8 +299,6 @@ class Redisd
|
|||||||
*/
|
*/
|
||||||
public function clear()
|
public function clear()
|
||||||
{
|
{
|
||||||
Cache::$writeTimes++;
|
|
||||||
|
|
||||||
$this->master(true);
|
$this->master(true);
|
||||||
return $this->handler->flushDB();
|
return $this->handler->flushDB();
|
||||||
}
|
}
|
||||||
@@ -321,8 +315,10 @@ class Redisd
|
|||||||
//如果代码中使用pconnect, close的作用仅是使当前php不能再进行redis请求,但无法真正关闭redis长连接,连接在后续请求中仍然会被重用,直至fpm进程生命周期结束。
|
//如果代码中使用pconnect, close的作用仅是使当前php不能再进行redis请求,但无法真正关闭redis长连接,连接在后续请求中仍然会被重用,直至fpm进程生命周期结束。
|
||||||
|
|
||||||
try {
|
try {
|
||||||
if(method_exists($this->handler, "close"))
|
if (method_exists($this->handler, "close")) {
|
||||||
$this->handler->close();
|
$this->handler->close();
|
||||||
|
}
|
||||||
|
|
||||||
} catch (\Exception $e) {
|
} catch (\Exception $e) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user