赞
踩
//redis初步应用 public function test31(){ //第一种连接Redis方法 装好扩展后的原生方式 会产生第一个连接 echo "<hr/>"; $redis = new \Redis(); $redis->connect('127.0.0.1', 6379); //连接Redis $redis->auth('12345'); //密码验证 $redis->select(2);//选择数据库2 $redis->set("testKey", "Hello Redis++++(原始方式)"); //设置测试key echo $redis->get("testKey");//输出value echo "<hr/>"; //第二种连接方式 使用thinkphp缓存配置 代码简洁性不够 会产生第二个连接 Cache::store('redis')->set('name','Hello Redis++++(框架缓存方式)',3600); $name=Cache::store('redis')->get('name'); echo $name; echo "<hr/>框架直接存对象:<br/>"; $t_stock = TStock::where('id','=',1)->find(); Cache::store('redis')->set('t_stock:1',$t_stock); $t_stock_r=Cache::store('redis')->get('t_stock:1'); var_dump($t_stock_r); echo "<hr/>"; //composer require predis/predis 安装PHP扩展方式,连接方式,类似第一种,没有感觉到优势 这里会产生第三个连接 $p_redis=new PredisClient(); $config=['scheme' => 'tcp', 'host' => '127.0.0.1', 'port' => 6379]; $p_redis->connect($config); $p_redis->auth(12345); $p_redis->select(2); $p_redis->set('name','Hello Redis++++(predis方式)'); $name=$p_redis->get('name'); echo $name; echo "<hr/>"; //这里不使用getInstance()方法,直接静态调用,最多只支持4个参数。 Redis::set('key5','Hello Redis++++(自定义静态代理方式)'); echo Redis::get('key5'); echo '<br/>'; echo Redis::getInstance()->get('key5'); //相比Laravel框架,composer require predis/predis 后自动生成静态代理, //然后在配置文件中配置连接参数,即可直接使用,感觉Laravel处理得更好 //而THinkphp没有找到类似方式。 //sleep(15); //info clients //四种方式,产生了四个连接,即使将上面代码复制粘贴一遍,还是4个连接 }
<?php
namespace app\facade;
use think\Facade;
class Redis extends Facade
{
protected static function getFacadeClass()
{
return 'app\common\Redis';
}
}
<?php namespace app\common; use \think\facade\Config; class Redis { static private $instance; //private function __construct(){} public static function getInstance(){ if (!self::$instance instanceof \Redis){ $redis=new \Redis; $redis->connect(Config::get('cache.redis.host'), Config::get('cache.redis.port')); //连接Redis $redis->auth(Config::get('cache.redis.password')); //密码验证 $redis->select(Config::get('cache.redis.select'));//选择数据库2 self::$instance=$redis; } return self::$instance; } //直接静态调用 public function __call($method,$ages){ self::getInstance(); switch($count=count($ages)){ case 0: return self::$instance->$method(); break; case 1: return self::$instance->$method($ages[0]); break; case 2: return self::$instance->$method($ages[0],$ages[1]); break; case 3: return self::$instance->$method($ages[0],$ages[1],$ages[2]); break; case 4: return self::$instance->$method($ages[0],$ages[1],$ages[2],$ages[3]); break; default: return '无法处理'; } } }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。