This article describes the example of thinkPHP implementing the MemCache distributed caching function. Share it with everyone for your reference, the details are as follows:
While studying the problem of MemCache distributed caching for two days, I found that ThinkPHP does not actually support the distributed caching function. This can be seen from the officially provided CacheMemcache.class.php file:
if(empty($options)) { $options = array ( 'host' => '127.0.0.1', 'port' => 11211, 'timeout' => false, 'persistent' => false ); } $func = $options['persistent'] ? 'pconnect' : 'connect'; $this->expire = isset($options['expire'])?$options['expire']:C('DATA_CACHE_TIME'); $this->handler = new Memcache; $this->connected = $options['timeout'] === false ? $this->handler->$func($options['host'], $options['port']) : $this->handler->$func($options['host'], $options['port'], $options['timeout']);
But it doesn’t matter, just modify it a little, that is
if(empty($options)) { $options = array ( 'timeout' => false, 'persistent' => false, 'servers'=>array( array('ip'=>'127.0.0.1','port'=>11211), array('ip'=>'127.0.0.1','port'=>11212), array('ip'=>'202.116.32.4','port'=>11211), ), ); } //分布式处理函数 $func="addServer"; $this->expire = isset($options['expire'])?$options['expire']:C('DATA_CACHE_TIME'); $this->handler = new Memcache; if($options['timeout']===false) { foreach($options['servers'] as $server) { $this->handler->$func($server['ip'],$server['port']); } }
I had nothing to do, so I started two MemCache servers on this machine, and wrote a simple monitoring code (automatically refreshed every once in a while) for testing. If you find that the server is not running properly, use PhpMailer to automatically send an email to the administrator's mailbox. The test results show that the two Memcache servers are working normally, while the other fake server is of course unable to connect. Haha, it’s simple enough
Readers who are interested in more thinkPHP-related content can check out the special topics on this site: "ThinkPHP Getting Started Tutorial", "ThinkPHP Common Methods Summary", "Smarty Template Basic Tutorial" and "PHP Template Technology Summary".
I hope this article will be helpful to everyone’s PHP programming based on the ThinkPHP framework.