多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
composer 安装 predis/predis 依赖,或者安装php\_redis.dll的扩展。 我这里选择的是predis/predis 依赖。 ~~~ composer require predis/predis ~~~ 进入config/cache.php 配置添加redis缓存支持 示例: ~~~ <?php // +---------------------------------------------------------------------- // | 缓存设置 // +---------------------------------------------------------------------- return [ // 默认缓存驱动 'default' => env('cache.driver', 'file'), // 缓存连接方式配置 'stores' => [ 'file' => [ // 驱动方式 'type' => 'File', // 缓存保存目录 'path' => '', // 缓存前缀 'prefix' => '', // 缓存有效期 0表示永久缓存 'expire' => 0, // 缓存标签前缀 'tag_prefix' => 'tag:', // 序列化机制 例如 ['serialize', 'unserialize'] 'serialize' => [], ], // 更多的缓存连接 ], // redis缓存 'redis' => [ 'type' => 'redis', 'host' => '127.0.0.1', 'timeout'=> 3600 ], ]; ~~~ ##### 页面测试代码 ~~~ <?php namespace app\controller; use app\BaseController; use think\facade\Cache; class Index extends BaseController { public function index() { //Cache::set('name', [1,2,3]); //(Cache::get('name')); Cache::store('redis')->set('name', [1,2,3]); dump(Cache::store('redis')->get('name')); } } ~~~ ##### 效果 ![](https://img.kancloud.cn/bd/58/bd586014c16af14a9e2bea6865894626_681x242.png) ### redis 高级用法 在php 原生中redis 的使用是 ~~~ //加载扩展 $redis = new \Redis(); //连接扩展 $redis->connect("127.0.0.1","6379"); //判断是否过期 $redis_status = $redis->exists("info"); if($redis_status==false){ //缓存失效,重新存入 //查询数据 $Info = db("user")->where('id', $userId)->find(); //转换成字符串,有利于存储 $redisInfo = serialize($Info); //存入缓存 $redis->set("info",$redisInfo); //设置缓存周期,60秒 $redis->expire("info",60); var_dump("新存入的值"); } //获取缓存 $result = unserialize($redis->get("info")); //当前时间 var_dump(date("Y-m-d H:i:s",time())); var_dump($result); ~~~ thinkephp 中要使用php redis 的扩展方法。则需使用`handler()`; 代码示例 ~~~ $redis = Cache::store('redis')->handler(); // 这条代码等于 $redis = new \Redis(); $redis->set("info",'hello world'); // 设置字段 $redis->expire("info",10); // 设置过期时间 var_dump($result); //1 没过期,2 为过期; ~~~ 根据菜鸟教程,试一下列表存储: ![](https://img.kancloud.cn/ef/c1/efc17c791778eb059ecffbd37bd51dd5_919x369.png)  代码: ~~~ $redis = Cache::store('redis') -> handler(); $redis->lpush("tutorial-list", "Redis"); $redis->lpush("tutorial-list", "Mongodb"); $redis->lpush("tutorial-list", "Mysql"); // 获取存储的数据并输出 $arList = $redis->lrange("tutorial-list", 0 ,5); echo "Stored string in redis"; print_r($arList); ~~~ 成功!