]> git.mxchange.org Git - friendica.git/blobdiff - include/cache.php
Merge pull request #1703 from rabuzarus/readable_bytes
[friendica.git] / include / cache.php
index 3c8a3f7138b4d7d5c1da52fe86ae99b62283bec8..3a18fe2a5a45b237a3a3b605d3a79a082786bbaf 100644 (file)
@@ -2,39 +2,70 @@
        /**
         *  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) {
-                       $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' limit 1",
-                                       dbesc($value),
-                                       dbesc(datetime_convert()),
-                                       dbesc($key));
-                       }
-                       else {
-                               q("INSERT INTO `cache` (`k`,`v`,`updated`) VALUES ('%s','%s','%s')",
+
+                       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")));
                }
-               
+
        }
-        
+