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')); } }
效果
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 为过期;
根据菜鸟教程,试一下列表存储:
代码:
$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);
成功!