欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Laravel操作redis和緩存操作詳解

 更新時(shí)間:2023年02月13日 10:51:52   作者:huaweichenai  
這篇文章主要為大家詳細(xì)介紹了Laravel操作redis和緩存操作的相關(guān)知識(shí),文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)和借鑒價(jià)值,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)游戲

一:操作redis

1:redis拓展安裝

composer require predis/predis

或者你也可以通過(guò) PECL 安裝 PhpRedis PHP 擴(kuò)展,安裝方法比較復(fù)雜,個(gè)人不推薦

2:配置redis

在config/database.php文件中配置redis

(1):?jiǎn)蝹€(gè)redis配置

'redis' => [

    'client' => env('REDIS_CLIENT', 'predis'),//別名,如果你安裝的是PhpRedis,將client值改為phpredis

    'default' => [
        'host' => env('REDIS_HOST', '127.0.0.1'),//redis服務(wù)器主機(jī)
        'password' => env('REDIS_PASSWORD', null),//redis服務(wù)器密碼
        'port' => env('REDIS_PORT', 6379),//redis服務(wù)器端口
        'database' => env('REDIS_DB', 0),
    ],

    'cache' => [
        'host' => env('REDIS_HOST', '127.0.0.1'),//redis服務(wù)器主機(jī)
        'password' => env('REDIS_PASSWORD', null),//redis服務(wù)器密碼
        'port' => env('REDIS_PORT', 6379),//redis服務(wù)器端口
        'database' => env('REDIS_CACHE_DB', 1),
    ],

],

(2):redis集群配置

'redis' => [

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

    'clusters' => [
        'default' => [
            [
                'host' => env('REDIS_HOST', 'localhost'),
                'password' => env('REDIS_PASSWORD', null),
                'port' => env('REDIS_PORT', 6379),
                'database' => 0,
            ],
        ],
    ],

],

3:操作redis

(1):設(shè)置redis

Redis::set('val1','asdasd');

(2):獲取redis

Redis::get('key')

(3):刪除redis

Redis::del('key');

二:緩存操作

1:緩存配置

laravel框架的緩存配置在config/cache.php文件中,配置參數(shù)有:

(1):配置cache的驅(qū)動(dòng)

'default' => env('CACHE_DRIVER', 'file')

Laravel 自帶了幾個(gè)不錯(cuò)且可開(kāi)箱即用的驅(qū)動(dòng)

• file - 將 Session 保存在 framework/cache/data 中。

• cookie - Session 保存在安全加密的 Cookie 中。

• database - Session 保存在關(guān)系型數(shù)據(jù)庫(kù)中。

• memcached / redis - Sessions 保存在其中一個(gè)快速且基于緩存的存儲(chǔ)系統(tǒng)中。

• array - Sessions 保存在 PHP 數(shù)組中,不會(huì)被持久化。

(2):根據(jù)你所選的驅(qū)動(dòng)配置

'stores' => [

        'apc' => [
            'driver' => 'apc',
        ],

        'array' => [
            'driver' => 'array',
        ],

        'database' => [
            'driver' => 'database',
            'table' => 'cache',
            'connection' => null,
        ],

        'file' => [
            'driver' => 'file',
            'path' => storage_path('framework/cache/data'),
        ],

        'memcached' => [
            'driver' => 'memcached',
            'persistent_id' => env('MEMCACHED_PERSISTENT_ID'),
            'sasl' => [
                env('MEMCACHED_USERNAME'),
                env('MEMCACHED_PASSWORD'),
            ],
            'options' => [
                // Memcached::OPT_CONNECT_TIMEOUT => 2000,
            ],
            'servers' => [
                [
                    'host' => env('MEMCACHED_HOST', '127.0.0.1'),
                    'port' => env('MEMCACHED_PORT', 11211),
                    'weight' => 100,
                ],
            ],
        ],

        'redis' => [
            'driver' => 'redis',
            'connection' => 'cache',
        ],

        'dynamodb' => [
            'driver' => 'dynamodb',
            'key' => env('AWS_ACCESS_KEY_ID'),
            'secret' => env('AWS_SECRET_ACCESS_KEY'),
            'region' => env('AWS_DEFAULT_REGION', 'us-east-1'),
            'table' => env('DYNAMODB_CACHE_TABLE', 'cache'),
            'endpoint' => env('DYNAMODB_ENDPOINT'),
        ],

    ],

• 如果你選擇了的database作為驅(qū)動(dòng)的時(shí),就需要修改stores內(nèi)的database配置

'database' => [
    'driver' => 'database',
    'table' => 'cache',//配置的緩存表名
    'connection' => null,//連接名,這個(gè)是在config/database.php文件配置的,不進(jìn)行配置使用默認(rèn)連接的數(shù)據(jù)庫(kù)
],

你選擇了database作為緩存驅(qū)動(dòng)的話,在目錄命令行執(zhí)行

php artisan cache:table
php artisan migrate

這時(shí)候會(huì)在數(shù)據(jù)庫(kù)生成一個(gè)cache表用于存儲(chǔ)緩存數(shù)據(jù)

• 如果你選擇了file作為驅(qū)動(dòng)時(shí),就需要修改stores內(nèi)的file配置

'file' => [
    'driver' => 'file',
    'path' => storage_path('framework/cache/data'),//這里配置的是緩存數(shù)據(jù)保存地址
],

• 如果你選擇了redis作為驅(qū)動(dòng)時(shí),就需要修改stores內(nèi)的redis配置

'redis' => [
    'driver' => 'redis',
    'connection' => 'default',//redis的連接名,對(duì)應(yīng)config/database.php文件的redis配置,如果不進(jìn)行配置使用默認(rèn)的redis連接配置
],

2:緩存操作

(1):設(shè)置緩存

Cache::put('key', 'value', $minutes);

//將不存在于緩存中的數(shù)據(jù)放入緩存中,如果存放成功返回 true ,否則返回 false
Cache::add('key', 'value', $minutes);

//數(shù)據(jù)永久存入緩存
Cache::forever('key', 'value');

//獲取users緩存,如果不存在,執(zhí)行第三個(gè)參數(shù),將返回值存入緩存
$value = Cache::remember('users', $minutes, function () {
    return DB::table('users')->get();
});

//獲取users緩存,如果不存在,執(zhí)行第三個(gè)參數(shù),將返回值存入緩存并永久儲(chǔ)存
$value = Cache::rememberForever('users', function() {
    return DB::table('users')->get();
});

(2):獲取緩存

$value = Cache::get('key')

//傳遞第二個(gè)參數(shù),用來(lái)指定如果查找的數(shù)據(jù)不存在時(shí),你希望返回的默認(rèn)值
$value = Cache::get('key', 'default');

//第二個(gè)參數(shù)傳遞 Closure 作為默認(rèn)值。如果指定的數(shù)據(jù)不存在于緩存中,將返回 Closure 的結(jié)果
$value = Cache::get('key', function () {
    return DB::table(...)->get();
});

//判斷緩存是否存在,如果值為 null 或 不存在返回false
Cache::has('key')

(3):刪除緩存

//從緩存中獲取到數(shù)據(jù)之后再刪除它,如果緩存中不存在該數(shù)據(jù), 則返回 null
$value = Cache::pull('key');
//刪除緩存
Cache::forget('key');
//清空緩存
Cache::flush();

(4):緩存遞增遞減

increment 和 decrement 方法可以用來(lái)調(diào)整高速緩存中整數(shù)項(xiàng)的值。這兩個(gè)方法都可以傳入第二個(gè)可選參數(shù),用來(lái)指示要遞增或遞減值的數(shù)量

注意:使用increment和decrement前提對(duì)應(yīng)的緩存之前必須有緩存數(shù)據(jù),不然返回NULL

Cache::increment('key');
Cache::increment('key', 2);
Cache::decrement('key');
Cache::decrement('key', 2);

(5):使用多種緩存方式

如果你想要使用多種緩存,你可以使用下面這種形式操作緩存,其他方法同理

$value = Cache::store('file')->get('foo');//獲取
Cache::store('redis')->put('bar', 'baz', 10);//設(shè)置

以上就是Laravel操作redis和緩存操作詳解的詳細(xì)內(nèi)容,更多關(guān)于Laravel操作redis 緩存操作的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評(píng)論