Generally speaking, if the amount of concurrency is not large, it will not have any impact not to use caching technology, but if the concurrency is high, It is very important to use caching technology, which can greatly reduce the pressure on the database and server. Of course, there are many technologies to solve high concurrency. Here we only explain the convenience and convenience of using memcache from the perspective of caching,
The prerequisite for using memcache is to configure the memcahche environment on the server first! After confirming that memcahce can be connected normally, you can use it in the program!
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 |
/** * Memcache cache operations * @author hxm * @version 1.0 * @since 2015.05.04 */ class MCache extends Object implements CacheFace { private $mem = null; //Mem object
private $sId = 1; //servier service ID
/** * Initialize Memcache * * @return Object */ public function __construct() { if ( !class_exists('Memcache') ) { throw new QException('PHP extension does not exist: Memcache'); } $this->mem = new Memcache(); }
/** * Link memcahce service * * @access private * @param string $key keyword * @param string $value cache content * @return array */ private function connect( $sid ) { $file = $this->CacheFile(); require $file; if(! isset($cache) ) { throw new QException('Cache configuration file does not exist'.$file); } $server = $cache[$this->cacheId]; $sid = isset($sid) == 0 ? $this->sId : $sid;//memcache service selection if ( ! $server[$sid]) { throw new QException('The cache server configuration file for the current operation does not exist'); } $host = $server[$sid]['host']; $port = $server[$sid]['port']; try { $this->mem->connect( $host , $port ); } catch (Exception $e) { exit('memecache connection failed, error message: '. $e->getMessage()); } }
/** * Write cache * * @access private * @param string $key keyword * @param string $value cache content * @return array */ public function set( $key , $value , $sid , $expire = 0) { $data = $this->get($key, $sid); //If the key value already exists if( $data ) { return $this->mem->set( $key , $value ,MEMCACHE_COMPRESSED , $expire); } else { return $this->mem->add( $key , $value ,MEMCACHE_COMPRESSED , $expire); } }
/** * Read cache * * @access private * @param string $key keyword * @param int $sid Select which memcache server * @return array */ public function get( $key , $sid) { $this->connect( $sid ); return $this->mem->get($key); }
/** * Clean (delete) all stored elements * * @access private * @return array */ public function flush() { $this->connect(); return $this->mem->flush(); } /** * Delete cache * * @access private * @param string $key keyword * @param int $sid Select which memcache server * @return array */ public function remove( $key , $sid) { $this->connect(); return $this->mem->delete($key); }
/** * Destructor * Finally close memcache */ public function __destruct() { /*if(! $this->mem) { $this->mem->close(); }*/ } } |
The above is the entire content of this article, I hope you all like it.