Laravel的缓存驱动

数据库配置

config/database.php

'app' => [

        'client' => env('REDIS_CLIENT', 'predis'),

        'options' => [
            'cluster' =>'redis',
            'prefix' => 'app:',
        ],

        'default' => [
            'url' => env('APP_REDIS_URL'),
            'host' => env('APP_REDIS_HOST', '127.0.0.1'),
            'password' => env('APP_REDIS_PASSWORD', null),
            'port' => env('APP_REDIS_PORT', 6379),
            'database' => env('APP_REDIS_DB', 2),
        ],

    ],

缓存配置

config/cache.php

'app' => [
            'driver' => 'app',
            'connection' => 'default',
            'prefix' => '',
        ],

服务容器注册

Providers/AppServiceProvider

    /**
     * 运行于所有应用.
     *
     * @return void
     */
    public function boot()
    {
        Cache::extend('app', function ($config) {
            $redis = $this->app['app-redis'];

            $connection = $config['connection'] ?? 'default';

            return $this->repository(new RedisStore($redis, $config['prefix'] ?? '', $connection));
        });
    }

    /**
     * 注册服务提供.
     *
     * @return void
     */
    public function register()
    { 
        // 前后端共享的缓存驱动
        $this->app->singleton('app-redis', function ($app) {
            $config = $app->make('config')->get('database.app', []);

            return new RedisManager($app, Arr::pull($config, 'client', 'phpredis'), $config);
        });
    }

用法

// 缓存
cache()->store('app')->get($key);
// redis
$redis = cache()->store('app')->getRedis();
$redis->sadd($key, 1);
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Laravel框架一:原理机制篇 Laravel作为在国内国外都颇为流行的PHP框架,风格优雅,其拥有自己的一些特...
    Mr_Z_Heng阅读 3,734评论 0 13
  • 1、配置 Laravel 为不同的缓存系统提供了统一的 API。缓存配置位于 config/cache.php。在...
    layjoy阅读 958评论 0 1
  • 缓存 配置 Laravel 对多种缓存系统提供了统一的 API。缓存的配置文件存放在 config/cache.p...
    Dearmadman阅读 12,013评论 0 8
  • Laravel指南 配置 Laravel的主配置文件将经常用到的文件集中到了根目录下的.env目录下,这样更高效更...
    什么都值得阅读 3,923评论 4 18
  • 缓存是web开发中重要的一部分,我相信很多人和我一样,经常忽略这个问题。 随着工作经验的累积,我已经意识到缓存是多...
    summerbluet阅读 563评论 0 4