|
[POO] Utiliser la ram pour stocker des données volatiles
|
|
Table des matières
[POO] Utiliser la ram pour stocker des données volatilesBonjour à tous, Voici un petit tuto pour vous présenter un système de cache bien utile que j'utilise notamment sur http://www.adelian.net A quoi ça sert ?Ça sert simplement à stocker des variables, que ce soit objet, tableau ou objets, dans la ram du serveur pendant un certains temps. On peut comparer ça à un système de session, mais partagé. Comment ça marche ?Et bien d'abord il vous faut une classe pour s'interface avec le démon memcached. Si il n'est pas installé sur votre machin, un simple apt-get install memcached php5-memcache suffit. Voici la classe en question : <?php class Cache extends Memcache { private static $_cache; public static $cache_server; public static $cache_port; // -------------------------------------------------------------- public function __construct() { // -------------------------------------------------------------- self::$cache_server = "localhost": self::$cache_port = "11211"; } // -------------------------------------------------------------- public function __destruct() { // -------------------------------------------------------------- if (!empty(self::$_cache)) self::$_cache->close(); } // -------------------------------------------------------------- public function get($key) { // -------------------------------------------------------------- return self::getConnexion()->get($key); } // -------------------------------------------------------------- public function set($key,$donnee,$delay=0) { // -------------------------------------------------------------- return self::getConnexion()->set($key,$donnee,false,$delay); } // -------------------------------------------------------------- static function getConnexion() // -------------------------------------------------------------- { if (empty(self::$_cache)) { self::$_cache = new Memcache(); self::$_cache->connect(self::$cache_server,self::$cache_port); } return self::$_cache; } } ?> Une fois cette classe créer, vous utiliser le système comme ceci : $oCache = Cache::getConnexion(); // récupération d'une instance de la classe $array = array('toto','titi','tata'); // tableau d'exemple prêt à être mis en cache $oCache->set('tableau',$array,0); // mise en cache du tableau avec comme clé "tableau" et comme durée 0 (infini) // pour récuperer le tableau plus tard, rien de plus simple $array = $oCache->get('tableau'); Quel intérêt ?Cette classe peut être utile par exemple pour savoir en direct le nombre de gens en ligne (et d'autres détails) sans accèder à votre base de données, elle peut également mettre en cache vos requêtes sql, ou par exemple lister les gens en ligne à un endroit donné sur une carte. Les possibilités sont énormes . Composé par mdcarter (http://www.studio-gamboo.com) |
|
tutoprog/ram_et_donnee_volatiles.txt · Dernière modification: 2011/04/03 14:06 (édition externe)
|