PHP中redis作为mysql的缓存服务器(读写分离)

xiaoxiao2021-02-28  87

<?php header("content-type:text/html;charset=utf8"); ///version 1 // get data //   $redis = new Redis(); //   $redis->connect('127.0.0.1', 6379); //   $arr = $redis->get('data_from_class_all'); // if(!empty($arr)){ //   $data = $arr; // }else{ //   $dsn = "mysql:host=localhost;dbname=cai"; //   $db = new PDO($dsn, 'root', 'root'); //   $db->query("set names utf8"); //   $data=$db->query('select * from `class`')->fetchAll(PDO::FETCH_ASSOC); //   if(!empty($data)){ //     $redis->set('data_from_class_all',$data); //   } // } //

/// version 2 $data = getData(); // print_r($data);die; // 获取数据 function getData(){   // to do somthing...   $redisObj = getRedisInstance();   $redisData = getRedisStr($redisObj, 'data_from_class_all');   if(!empty($redisData)){     $data = $redisData;   }else{     $db = getMysqlInstance();     $data = getMysqlDataAll($db);     if(!empty($data)){       setRedisStr($redisObj, 'data_from_class_all', serialize($data));     }   }   return $data; } // 获取redis实例 function getRedisInstance(){   $redis = new Redis();   $redis->connect('127.0.0.1', 6379);   return $redis; } // 设置Redis的string类型值 function setRedisStr($redisObj, $redisKey, $data){   $redisObj->set($redisKey,$data); } // 获取Redis的string类型值 function getRedisStr($redisObj, $redisKey){   $redisData = $redisObj->get($redisKey);   return unserialize($redisData); } // 获取mysql的实例 function getMysqlInstance(){   $dsn = "mysql:host=localhost;dbname=cai";   $db = new PDO($dsn, 'root', 'root');   $db->query("set names utf8");   return $db; } // 获取mysql的数据 function getMysqlDataAll($db){   return $db->query('select * from `class`')->fetchAll(PDO::FETCH_ASSOC); }
转载请注明原文地址: https://www.6miu.com/read-2622390.html

最新回复(0)