chache: check for valid serialized data + uncomment caching of contact suggestion

This commit is contained in:
rabuzarus 2016-11-07 22:12:11 +01:00
parent e446e9571f
commit 915689dd79
2 changed files with 30 additions and 10 deletions

View File

@ -84,9 +84,14 @@ class Cache {
$memcache = self::memcache(); $memcache = self::memcache();
if (is_object($memcache)) { if (is_object($memcache)) {
// We fetch with the hostname as key to avoid problems with other applications // We fetch with the hostname as key to avoid problems with other applications
$value = $memcache->get(get_app()->get_hostname().":".$key); $cached = $memcache->get(get_app()->get_hostname().":".$key);
if (!is_bool($value)) { $value = @unserialize($cached);
return unserialize($value);
// Only return a value if the serialized value is valid and
// We also check if the db entry is a serialized
// boolean 'false' value which we want to return)
if ($cached === 'b:0;' || $value !== false) {
return $value;
} }
return null; return null;
@ -100,7 +105,15 @@ class Cache {
); );
if (dbm::is_result($r)) { if (dbm::is_result($r)) {
return unserialize($r[0]['v']); $cached = $r[0]['v'];
$value = @unserialize($cached);
// Only return a value if the serialized value is valid and
// We also check if the db entry is a serialized
// boolean 'false' value which we want to return)
if ($cached === 'b:0;' || $value !== false) {
return $value;
}
} }
return null; return null;

View File

@ -1079,10 +1079,12 @@ function suggestion_query($uid, $start = 0, $limit = 80) {
return array(); return array();
} }
$list = Cache::get("suggestion_query:".$uid.":".$start.":".$limit); // Uncommented because the result of the queries are to big to store it in the cache
if (!is_null($list)) { // We need to decide if we want to change the db column type or if we want to delte it
return $list; // $list = Cache::get("suggestion_query:".$uid.":".$start.":".$limit);
} // if (!is_null($list)) {
// return $list;
// }
$network = array(NETWORK_DFRN); $network = array(NETWORK_DFRN);
@ -1116,7 +1118,10 @@ function suggestion_query($uid, $start = 0, $limit = 80) {
); );
if (count($r) && count($r) >= ($limit -1)) { if (count($r) && count($r) >= ($limit -1)) {
Cache::set("suggestion_query:".$uid.":".$start.":".$limit, $r, CACHE_FIVE_MINUTES); // Uncommented because the result of the queries are to big to store it in the cache
// We need to decide if we want to change the db column type or if we want to delte it
// Cache::set("suggestion_query:".$uid.":".$start.":".$limit, $r, CACHE_FIVE_MINUTES);
return $r; return $r;
} }
@ -1147,7 +1152,9 @@ function suggestion_query($uid, $start = 0, $limit = 80) {
while (sizeof($list) > ($limit)) while (sizeof($list) > ($limit))
array_pop($list); array_pop($list);
Cache::set("suggestion_query:".$uid.":".$start.":".$limit, $list, CACHE_FIVE_MINUTES); // Uncommented because the result of the queries are to big to store it in the cache
// We need to decide if we want to change the db column type or if we want to delte it
// Cache::set("suggestion_query:".$uid.":".$start.":".$limit, $list, CACHE_FIVE_MINUTES);
return $list; return $list;
} }