记录学习与后端知识并分享学习代码过程(会飞的鱼Blog)

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表的缓存。在下一次请求时,程序会先尝试从缓存中获取数据,如果有则直接返回;否则再去查询数据库并将结果保存到缓存中。这样可以减少对数据库的访问,提高应用程序的性能。

本文由 @会飞的鱼 于 2023-6-25 发布在 会飞的鱼Blog,如无特别说明,本博文章均为原创,转载请保留出处。

网友评论

    暂无评论

会飞的鱼 在线咨询

在线时间:9:00-22:00
周六、周日:14:00-22:00