composer 安装 predis/predis 依赖,或者安装php_redis.dll的扩展。
我这里选择的是predis/predis 依赖。
composer require predis/predis
进入config/cache.php 配置添加redis缓存支持
示例:
// +----------------------------------------------------------------------
// | 缓存设置
// +----------------------------------------------------------------------
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
],
];
页面测试代码
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'));
}
}
效果
image.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 为过期;