X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=include%2Fcache.php;h=3a18fe2a5a45b237a3a3b605d3a79a082786bbaf;hb=cdebdc777e38506e673864377ce17a5af91dd8a1;hp=082974c61a907f8a42e593f88383dd586b585701;hpb=00c342e13d833fd215e5dc03a508e1abe660fe21;p=friendica.git diff --git a/include/cache.php b/include/cache.php index 082974c61a..3a18fe2a5a 100644 --- a/include/cache.php +++ b/include/cache.php @@ -2,28 +2,70 @@ /** * cache api */ - + class Cache { - public static function get($key){ - $r = q("SELECT `v` FROM `cache` WHERE `k`='%s'", + public static function get($key) { + /*if (function_exists("apc_fetch") AND function_exists("apc_exists")) + if (apc_exists($key)) + return(apc_fetch($key));*/ + + $r = q("SELECT `v` FROM `cache` WHERE `k`='%s' limit 1", dbesc($key) ); - - if (count($r)) return $r[0]['v']; + + if (count($r)) { + /*if (function_exists("apc_store")) + apc_store($key, $r[0]['v'], 600);*/ + + return $r[0]['v']; + } return null; } - + public static function set($key,$value) { - q("INSERT INTO `cache` VALUES ('%s','%s','%s')", - dbesc($key), - dbesc($value), - dbesc(datetime_convert())); + + q("REPLACE INTO `cache` (`k`,`v`,`updated`) VALUES ('%s','%s','%s')", + dbesc($key), + dbesc($value), + dbesc(datetime_convert())); + + /*if (function_exists("apc_store")) + apc_store($key, $value, 600);*/ + } - + + +/* + * + * 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. + */ + +/* + * $r = q("SELECT * FROM `cache` WHERE `k`='%s' limit 1", + * dbesc($key) + * ); + * if(count($r)) { + * q("UPDATE `cache` SET `v` = '%s', `updated = '%s' WHERE `k` = '%s'", + * dbesc($value), + * dbesc(datetime_convert()), + * dbesc($key)); + * } + * else { + * q("INSERT INTO `cache` (`k`,`v`,`updated`) VALUES ('%s','%s','%s')", + * dbesc($key), + * dbesc($value), + * dbesc(datetime_convert())); + * } + * } + */ + + public static function clear(){ q("DELETE FROM `cache` WHERE `updated` < '%s'", - dbesc(datetime_convert('UTC','UTC',"now - 30 days"))); + dbesc(datetime_convert('UTC','UTC',"now - 30 days"))); } - + } - +