This article describes the implementation of MemCache distributed caching function in thinkPHP. Share it for your reference, as follows:
When studying the problem of MemCache distributed caching for two days, I found that ThinkPHP actually does not support distributed caching function. This can be seen from the official files:
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 slightly, 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), ), ); } //Distributed processing function$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 was idle, so I started two MemCache servers on the machine and wrote a simple monitoring code (it was automatically refreshed every once in a while) to test it. If you find that the server is not running properly, use PhpMailer to automatically send an email to the administrator's email. The test results show that both Memcache servers work properly, while the other fake server is of course unable to connect to. Haha, it's simple enough
For more information about thinkPHP related content, please check out the topic of this site:ThinkPHP Introduction Tutorial》、《Summary of common methods of ThinkPHP》、《Basic tutorial on getting started with smarty templates"and"PHP template technical summary》。
I hope that the description in this article will be helpful to everyone's PHP programming based on the ThinkPHP framework.