国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術(shù)文章
文章詳情頁

Laravel操作redis和緩存操作詳解

瀏覽:39日期:2022-06-06 17:02:04
目錄
  • 一:操作redis
    • 1:redis拓展安裝
    • 2:配置redis
    • 3:操作redis
  • 二:緩存操作
    • 1:緩存配置
    • 2:緩存操作

一:操作redis

1:redis拓展安裝

composer require predis/predis

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

2:配置redis

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

(1):單個redis配置

"redis" => [

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

    "default" => [
"host" => env("REDIS_HOST", "127.0.0.1"),//redis服務(wù)器主機
"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ù)器主機
"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ū)動

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

Laravel 自帶了幾個不錯且可開箱即用的驅(qū)動

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

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

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

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

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

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

"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ū)動的時,就需要修改stores內(nèi)的database配置

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

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

php artisan cache:table
php artisan migrate

這時候會在數(shù)據(jù)庫生成一個cache表用于存儲緩存數(shù)據(jù)

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

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

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

"redis" => [
    "driver" => "redis",
    "connection" => "default",//redis的連接名,對應(yīng)config/database.php文件的redis配置,如果不進行配置使用默認的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í)行第三個參數(shù),將返回值存入緩存
$value = Cache::remember("users", $minutes, function () {
    return DB::table("users")->get();
});

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

(2):獲取緩存

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

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

//第二個參數(shù)傳遞 Closure 作為默認值。如果指定的數(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 方法可以用來調(diào)整高速緩存中整數(shù)項的值。這兩個方法都可以傳入第二個可選參數(shù),用來指示要遞增或遞減值的數(shù)量

注意:使用increment和decrement前提對應(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和緩存操作詳解的詳細內(nèi)容,更多關(guān)于Laravel操作redis 緩存操作的資料請關(guān)注其它相關(guān)文章!

標簽: PHP
主站蜘蛛池模板: 手机免费看毛片 | 毛片亚洲毛片亚洲毛片 | 久久国产欧美日韩高清专区 | 成人亚洲网| 欧美在线成人免费国产 | 欧美成人午夜做爰视频在线观看 | 韩国一级特黄清高免费大片 | 国产精品久久久久一区二区 | 久夜色精品国产一区二区三区 | 台湾三级香港三级经典三在线 | 中国一级毛片欧美一级毛片 | 玖玖这里只有精品 | 久久综合给合久久狠狠狠97色69 | 三级网站视频在线观看 | 男女牲高爱潮免费视频男女 | 国产最猛性xxxxxx69交 | 正在播放的国产a一片 | 国产极品喷水视频jk制服 | 国产美女一级毛片 | 91精品国产高清久久久久 | 亚洲九九视频 | 国产精品久久久久久影院 | 亚洲 自拍 另类 欧美 综合 | 国产不卡一区二区三区免费视 | a级片在线观看 | 亚洲国产成人麻豆精品 | 久久欧洲视频 | 成人18免费| 农村寡妇偷毛片一级 | 国产精品久久久久久久久岛 | 一级毛片免费播放 | 国产精品亚洲二线在线播放 | 九九99在线视频 | 精品国产v无码大片在线观看 | 99视频在线播放 | 亚洲欧美日本国产 | 日韩在线 | 中文 | 我要看a级毛片 | 69性欧美高清影院 | 国内自拍在线视频高清 | 国产精品一区在线免费观看 |