THINKPHP和memcached合并操作namespace app\index\controller;require __DIR__ . '/../../../vendor/memcached/class/memcached.php'; class Index { public static $memcached = false; public function __construct() { self::$memcached = $this->getMemcached(); } public function index() { $key = $_GET['key'] ?? 5; $nums = @self::$memcached->get($key); if ($nums === null) { $nums = model('Blog')->where('id', $key)->value('view'); self::$memcached->set($key, $nums); } $nums = self::$memcached->incr($key); if ($nums % 5 == 0) { model('Blog')->where('id', $key)->update(['view' => $nums]); } echo $nums; } /*** * @return bool|\memcached * 通过单例模式返回memcached对象 */ public function getMemcached() { if (self::$memcached) { return self::$memcached; } else { return self::$memcached = new \memcached(array( 'servers' => array('127.0.0.1:11211'), 'debug' => false, 'compress_threshold' => 10240, 'persistant' => true)); } } }
发表评论