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();
if (is_object($memcache)) {
// We fetch with the hostname as key to avoid problems with other applications
$value = $memcache->get(get_app()->get_hostname().":".$key);
if (!is_bool($value)) {
return unserialize($value);
$cached = $memcache->get(get_app()->get_hostname().":".$key);
$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;
@ -100,7 +105,15 @@ class Cache {
);
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;

View file

@ -1079,10 +1079,12 @@ function suggestion_query($uid, $start = 0, $limit = 80) {
return array();
}
$list = Cache::get("suggestion_query:".$uid.":".$start.":".$limit);
if (!is_null($list)) {
return $list;
}
// 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
// $list = Cache::get("suggestion_query:".$uid.":".$start.":".$limit);
// if (!is_null($list)) {
// return $list;
// }
$network = array(NETWORK_DFRN);
@ -1116,7 +1118,10 @@ function suggestion_query($uid, $start = 0, $limit = 80) {
);
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;
}
@ -1147,7 +1152,9 @@ function suggestion_query($uid, $start = 0, $limit = 80) {
while (sizeof($list) > ($limit))
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;
}