mirror of
https://github.com/nextcloud/server.git
synced 2026-06-09 00:32:29 -04:00
Merge pull request #46395 from nextcloud/apcu-default-ttl
fix: set default TTL for APCu cache as per docs
This commit is contained in:
commit
495f454b6f
5 changed files with 26 additions and 29 deletions
|
|
@ -25,6 +25,9 @@ class APCu extends Cache implements IMemcache {
|
|||
}
|
||||
|
||||
public function set($key, $value, $ttl = 0) {
|
||||
if ($ttl === 0) {
|
||||
$ttl = self::DEFAULT_TTL;
|
||||
}
|
||||
return apcu_store($this->getPrefix() . $key, $value, $ttl);
|
||||
}
|
||||
|
||||
|
|
@ -56,6 +59,9 @@ class APCu extends Cache implements IMemcache {
|
|||
* @return bool
|
||||
*/
|
||||
public function add($key, $value, $ttl = 0) {
|
||||
if ($ttl === 0) {
|
||||
$ttl = self::DEFAULT_TTL;
|
||||
}
|
||||
return apcu_add($this->getPrefix() . $key, $value, $ttl);
|
||||
}
|
||||
|
||||
|
|
@ -67,22 +73,8 @@ class APCu extends Cache implements IMemcache {
|
|||
* @return int | bool
|
||||
*/
|
||||
public function inc($key, $step = 1) {
|
||||
$this->add($key, 0);
|
||||
/**
|
||||
* TODO - hack around a PHP 7 specific issue in APCu
|
||||
*
|
||||
* on PHP 7 the apcu_inc method on a non-existing object will increment
|
||||
* "0" and result in "1" as value - therefore we check for existence
|
||||
* first
|
||||
*
|
||||
* on PHP 5.6 this is not the case
|
||||
*
|
||||
* see https://github.com/krakjoe/apcu/issues/183#issuecomment-244038221
|
||||
* for details
|
||||
*/
|
||||
return apcu_exists($this->getPrefix() . $key)
|
||||
? apcu_inc($this->getPrefix() . $key, $step)
|
||||
: false;
|
||||
$success = null;
|
||||
return apcu_inc($this->getPrefix() . $key, $step, $success, self::DEFAULT_TTL);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -93,18 +85,6 @@ class APCu extends Cache implements IMemcache {
|
|||
* @return int | bool
|
||||
*/
|
||||
public function dec($key, $step = 1) {
|
||||
/**
|
||||
* TODO - hack around a PHP 7 specific issue in APCu
|
||||
*
|
||||
* on PHP 7 the apcu_dec method on a non-existing object will decrement
|
||||
* "0" and result in "-1" as value - therefore we check for existence
|
||||
* first
|
||||
*
|
||||
* on PHP 5.6 this is not the case
|
||||
*
|
||||
* see https://github.com/krakjoe/apcu/issues/183#issuecomment-244038221
|
||||
* for details
|
||||
*/
|
||||
return apcu_exists($this->getPrefix() . $key)
|
||||
? apcu_dec($this->getPrefix() . $key, $step)
|
||||
: false;
|
||||
|
|
|
|||
|
|
@ -29,7 +29,6 @@ class Redis extends Cache implements IMemcacheTTL {
|
|||
],
|
||||
];
|
||||
|
||||
private const DEFAULT_TTL = 24 * 60 * 60; // 1 day
|
||||
private const MAX_TTL = 30 * 24 * 60 * 60; // 1 month
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -15,6 +15,11 @@ namespace OCP;
|
|||
* @since 6.0.0
|
||||
*/
|
||||
interface ICache {
|
||||
/**
|
||||
* @since 30.0.0
|
||||
*/
|
||||
public const DEFAULT_TTL = 24 * 60 * 60;
|
||||
|
||||
/**
|
||||
* Get a value from the user cache
|
||||
* @param string $key
|
||||
|
|
|
|||
|
|
@ -30,6 +30,9 @@ interface IMemcache extends ICache {
|
|||
/**
|
||||
* Increase a stored number
|
||||
*
|
||||
* If no value is stored with the key, it will behave as if a 0 was stored.
|
||||
* If a non-numeric value is stored, the operation will fail and `false` is returned.
|
||||
*
|
||||
* @param string $key
|
||||
* @param int $step
|
||||
* @return int | bool
|
||||
|
|
@ -40,6 +43,9 @@ interface IMemcache extends ICache {
|
|||
/**
|
||||
* Decrease a stored number
|
||||
*
|
||||
* If no value is stored with the key, the operation will fail and `false` is returned.
|
||||
* If a non-numeric value is stored, the operation will fail and `false` is returned.
|
||||
*
|
||||
* @param string $key
|
||||
* @param int $step
|
||||
* @return int | bool
|
||||
|
|
|
|||
|
|
@ -151,5 +151,12 @@
|
|||
<referencedClass name="OCA\GlobalSiteSelector\Service\SlaveService"/>
|
||||
</errorLevel>
|
||||
</UndefinedDocblockClass>
|
||||
<AmbiguousConstantInheritance>
|
||||
<errorLevel type="suppress">
|
||||
<!-- false positive: https://github.com/vimeo/psalm/issues/7818 -->
|
||||
<referencedConstant name="OC\Memcache\Redis::DEFAULT_TTL" />
|
||||
<referencedConstant name="OC\Memcache\LoggerWrapperCache::DEFAULT_TTL" />
|
||||
</errorLevel>
|
||||
</AmbiguousConstantInheritance>
|
||||
</issueHandlers>
|
||||
</psalm>
|
||||
|
|
|
|||
Loading…
Reference in a new issue