thinkphp6数据库缓存详细教程
0
711
2023年6月25日
首先需要给服务器装上redis并启用当,关于怎么安装redis请自寻查找对于当方法,宝塔这些都很简单。
下面是一个使用Redis作为缓存的示例:
1.首先,在config/cache.php配置文件中设置Redis作为默认缓存驱动:
return [
// 默认缓存驱动
'default' => env('cache.driver', 'redis'),
// 缓存连接方式配置
'stores' => [
'file' => [
'driver' => 'file',
'path' => runtime_path('cache'),
],
'redis' => [
'driver' => 'redis',
'connection' => env('cache.redis.connection', 'default'),
],
],
// 缓存前缀
'prefix' => env('cache.prefix', ''),
];
2.然后,在.env文件中设置Redis连接信息:
CACHE_PREFIX中的gua_是数据库表前缀
CACHE_DRIVER=redis
REDIS_HOST=127.0.0.1
REDIS_PORT=6379
REDIS_PASSWORD=null
REDIS_DB=0
CACHE_PREFIX=gua_
3.在需要使用缓存的地方,例如控制器中,可以这样获取并使用gua_res表数据:
<?php
namespace app\controller;
use think\facade\Cache;
use app\model\Res;
class Index extends Base
{
public function index()
{
$key = "gua_res_list";
// 先尝试从缓存中获取数据,如果有则直接返回
if (Cache::has($key)) {
$movies = Cache::get($key);
return json($movies);
}
// 如果缓存中没有,则从数据库中获取数据,并将结果保存到缓存中
$res = Res::where('status', 1)->select();
Cache::set($key, $res, 3600); // 缓存有效期为1小时
return json($res);
}
}
这样就完成了gua_movie表和gua_resource表的缓存。在下一次请求时,程序会先尝试从缓存中获取数据,如果有则直接返回;否则再去查询数据库并将结果保存到缓存中。这样可以减少对数据库的访问,提高应用程序的性能。
这个主题简介啊