summaryrefslogtreecommitdiffstats
path: root/lib/private/Memcache/Redis.php
diff options
context:
space:
mode:
Diffstat (limited to 'lib/private/Memcache/Redis.php')
-rw-r--r--lib/private/Memcache/Redis.php85
1 files changed, 84 insertions, 1 deletions
diff --git a/lib/private/Memcache/Redis.php b/lib/private/Memcache/Redis.php
index aee1773d565..74d8da187fe 100644
--- a/lib/private/Memcache/Redis.php
+++ b/lib/private/Memcache/Redis.php
@@ -37,8 +37,11 @@ class Redis extends Cache implements IMemcacheTTL {
*/
private static $cache = null;
- public function __construct($prefix = '') {
+ private $logFile;
+
+ public function __construct($prefix = '', string $logFile = '') {
parent::__construct($prefix);
+ $this->logFile = $logFile;
if (is_null(self::$cache)) {
self::$cache = \OC::$server->getGetRedisFactory()->getInstance();
}
@@ -52,6 +55,14 @@ class Redis extends Cache implements IMemcacheTTL {
}
public function get($key) {
+ if ($this->logFile !== '' && is_writable($this->logFile)) {
+ file_put_contents(
+ $this->logFile,
+ $this->getNameSpace() . '::get::' . $key . "\n",
+ FILE_APPEND
+ );
+ }
+
$result = self::$cache->get($this->getNameSpace() . $key);
if ($result === false && !self::$cache->exists($this->getNameSpace() . $key)) {
return null;
@@ -61,6 +72,14 @@ class Redis extends Cache implements IMemcacheTTL {
}
public function set($key, $value, $ttl = 0) {
+ if ($this->logFile !== '' && is_writable($this->logFile)) {
+ file_put_contents(
+ $this->logFile,
+ $this->getNameSpace() . '::set::' . $key . '::' . $ttl . '::' . json_encode($value) . "\n",
+ FILE_APPEND
+ );
+ }
+
if ($ttl > 0) {
return self::$cache->setex($this->getNameSpace() . $key, $ttl, json_encode($value));
} else {
@@ -69,10 +88,26 @@ class Redis extends Cache implements IMemcacheTTL {
}
public function hasKey($key) {
+ if ($this->logFile !== '' && is_writable($this->logFile)) {
+ file_put_contents(
+ $this->logFile,
+ $this->getNameSpace() . '::hasKey::' . $key . "\n",
+ FILE_APPEND
+ );
+ }
+
return (bool)self::$cache->exists($this->getNameSpace() . $key);
}
public function remove($key) {
+ if ($this->logFile !== '' && is_writable($this->logFile)) {
+ file_put_contents(
+ $this->logFile,
+ $this->getNameSpace() . '::remove::' . $key . "\n",
+ FILE_APPEND
+ );
+ }
+
if (self::$cache->del($this->getNameSpace() . $key)) {
return true;
} else {
@@ -81,6 +116,14 @@ class Redis extends Cache implements IMemcacheTTL {
}
public function clear($prefix = '') {
+ if ($this->logFile !== '' && is_writable($this->logFile)) {
+ file_put_contents(
+ $this->logFile,
+ $this->getNameSpace() . '::clear::' . $prefix . "\n",
+ FILE_APPEND
+ );
+ }
+
$prefix = $this->getNameSpace() . $prefix . '*';
$keys = self::$cache->keys($prefix);
$deleted = self::$cache->del($keys);
@@ -106,6 +149,14 @@ class Redis extends Cache implements IMemcacheTTL {
if ($ttl !== 0 && is_int($ttl)) {
$args['ex'] = $ttl;
}
+ if ($this->logFile !== '' && is_writable($this->logFile)) {
+ file_put_contents(
+ $this->logFile,
+ $this->getNameSpace() . '::add::' . $key . '::' . $value . "\n",
+ FILE_APPEND
+ );
+ }
+
return self::$cache->set($this->getPrefix() . $key, $value, $args);
}
@@ -118,6 +169,14 @@ class Redis extends Cache implements IMemcacheTTL {
* @return int | bool
*/
public function inc($key, $step = 1) {
+ if ($this->logFile !== '' && is_writable($this->logFile)) {
+ file_put_contents(
+ $this->logFile,
+ $this->getNameSpace() . '::inc::' . $key . "\n",
+ FILE_APPEND
+ );
+ }
+
return self::$cache->incrBy($this->getNameSpace() . $key, $step);
}
@@ -129,6 +188,14 @@ class Redis extends Cache implements IMemcacheTTL {
* @return int | bool
*/
public function dec($key, $step = 1) {
+ if ($this->logFile !== '' && is_writable($this->logFile)) {
+ file_put_contents(
+ $this->logFile,
+ $this->getNameSpace() . '::dec::' . $key . "\n",
+ FILE_APPEND
+ );
+ }
+
if (!$this->hasKey($key)) {
return false;
}
@@ -144,6 +211,14 @@ class Redis extends Cache implements IMemcacheTTL {
* @return bool
*/
public function cas($key, $old, $new) {
+ if ($this->logFile !== '' && is_writable($this->logFile)) {
+ file_put_contents(
+ $this->logFile,
+ $this->getNameSpace() . '::cas::' . $key . "\n",
+ FILE_APPEND
+ );
+ }
+
if (!is_int($new)) {
$new = json_encode($new);
}
@@ -166,6 +241,14 @@ class Redis extends Cache implements IMemcacheTTL {
* @return bool
*/
public function cad($key, $old) {
+ if ($this->logFile !== '' && is_writable($this->logFile)) {
+ file_put_contents(
+ $this->logFile,
+ $this->getNameSpace() . '::cad::' . $key . "\n",
+ FILE_APPEND
+ );
+ }
+
self::$cache->watch($this->getNameSpace() . $key);
if ($this->get($key) === $old) {
$result = self::$cache->multi()