X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=include%2Fcache.php;h=d0b0dfafda9c4fc011102bf6a2fa0cd3cbc00d1b;hb=05b2836d660c043d00b204c05463e720bb72f62a;hp=360c4acbdbadd285225f848149a3d2c778bc8576;hpb=3ecde2d72f27c248eb13d53d3f601934f6baaf16;p=friendica.git diff --git a/include/cache.php b/include/cache.php index 360c4acbdb..d0b0dfafda 100644 --- a/include/cache.php +++ b/include/cache.php @@ -2,29 +2,34 @@ /** * cache api */ - + class Cache { - public static function get($key){ + public static function get($key) { + $r = q("SELECT `v` FROM `cache` WHERE `k`='%s' limit 1", dbesc($key) ); - - if (count($r)) return $r[0]['v']; + + if (count($r)) + return $r[0]['v']; + return null; } - - public static function set($key,$value) { - q("REPLACE INTO `cache` (`k`,`v`,`updated`) VALUES ('%s','%s','%s')", + public static function set($key,$value, $duration = CACHE_MONTH) { + + q("REPLACE INTO `cache` (`k`,`v`,`expire_mode`,`updated`) VALUES ('%s','%s',%d,'%s')", dbesc($key), dbesc($value), + intval($duration), dbesc(datetime_convert())); + } - -/* + +/* * - * Leaving this legacy code temporaily to see how REPLACE fares + * Leaving this legacy code temporaily to see how REPLACE fares * as opposed to non-atomic checks when faced with fast moving key duplication. * As a MySQL extension it isn't portable, but we're not yet very portable. */ @@ -34,7 +39,7 @@ * dbesc($key) * ); * if(count($r)) { - * q("UPDATE `cache` SET `v` = '%s', `updated = '%s' WHERE `k` = '%s' limit 1", + * q("UPDATE `cache` SET `v` = '%s', `updated = '%s' WHERE `k` = '%s'", * dbesc($value), * dbesc(datetime_convert()), * dbesc($key)); @@ -48,11 +53,20 @@ * } */ - + public static function clear(){ - q("DELETE FROM `cache` WHERE `updated` < '%s'", - dbesc(datetime_convert('UTC','UTC',"now - 30 days"))); + q("DELETE FROM `cache` WHERE `updated` < '%s' AND `expire_mode` = %d", + dbesc(datetime_convert('UTC','UTC',"now - 30 days")), intval(CACHE_MONTH)); + + q("DELETE FROM `cache` WHERE `updated` < '%s' AND `expire_mode` = %d", + dbesc(datetime_convert('UTC','UTC',"now - 7 days")), intval(CACHE_WEEK)); + + q("DELETE FROM `cache` WHERE `updated` < '%s' AND `expire_mode` = %d", + dbesc(datetime_convert('UTC','UTC',"now - 1 days")), intval(CACHE_DAY)); + + q("DELETE FROM `cache` WHERE `updated` < '%s' AND `expire_mode` = %d", + dbesc(datetime_convert('UTC','UTC',"now - 1 hours")), intval(CACHE_HOUR)); } - + } - +