Adding cache mechanism for bbcode. Improving cache to use apc.
This commit is contained in:
parent
f663676cca
commit
57db109474
2 changed files with 84 additions and 63 deletions
|
@ -2,29 +2,42 @@
|
|||
/**
|
||||
* cache api
|
||||
*/
|
||||
|
||||
|
||||
class Cache {
|
||||
public static function get($key){
|
||||
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("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
|
||||
* 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.
|
||||
*/
|
||||
|
@ -48,11 +61,11 @@
|
|||
* }
|
||||
*/
|
||||
|
||||
|
||||
|
||||
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")));
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue