diff options
Diffstat (limited to 'lib/private/memcache/memcached.php')
-rw-r--r-- | lib/private/memcache/memcached.php | 41 |
1 files changed, 40 insertions, 1 deletions
diff --git a/lib/private/memcache/memcached.php b/lib/private/memcache/memcached.php index a2b3440317f..cf1d651b551 100644 --- a/lib/private/memcache/memcached.php +++ b/lib/private/memcache/memcached.php @@ -24,7 +24,11 @@ namespace OC\Memcache; -class Memcached extends Cache { +use OCP\IMemcache; + +class Memcached extends Cache implements IMemcache { + use CASTrait; + /** * @var \Memcached $cache */ @@ -100,6 +104,41 @@ class Memcached extends Cache { return true; } + /** + * Set a value in the cache if it's not already stored + * + * @param string $key + * @param mixed $value + * @param int $ttl Time To Live in seconds. Defaults to 60*60*24 + * @return bool + */ + public function add($key, $value, $ttl = 0) { + return self::$cache->add($this->getPrefix() . $key, $value, $ttl); + } + + /** + * Increase a stored number + * + * @param string $key + * @param int $step + * @return int | bool + */ + public function inc($key, $step = 1) { + $this->add($key, 0); + return self::$cache->increment($this->getPrefix() . $key, $step); + } + + /** + * Decrease a stored number + * + * @param string $key + * @param int $step + * @return int | bool + */ + public function dec($key, $step = 1) { + return self::$cache->decrement($this->getPrefix() . $key, $step); + } + static public function isAvailable() { return extension_loaded('memcached'); } |