---
# System prepended metadata

title: laravel CaChe 緩存
tags: [Laravel]

---

# laravel CaChe 緩存
![](https://i.imgur.com/slbcoTj.png)
會檢查有沒有

## 設定
cache的redis那邊
connection
是指config database中的cache


## 常用介紹
![](https://i.imgur.com/G30xxIe.png)
put是放 時間跑到第三個了
has判斷
get 拿
沒有就null

increment加減

比較特別的是
get()第二個參數是default 
沒有找到這key就回傳這個


## remmber
cache->remmber
三個參數 key 時間  value 可用閉包 或箭頭涵式

![](https://i.imgur.com/jprYkdb.png)

第二參數不一樣是int 也可以是data
![](https://i.imgur.com/2f6JFuw.png)


## 畫面緩存
使用時機 一次很多查詢 index大量的時候
記得這要forget
所以要搜尋的感覺用不瞭
https://www.youtube.com/watch?v=JhKngeE0XJA

https://www.youtube.com/watch?v=LnW7bE1iXqE


## 自動記數字 遞增/遞減值

遞增/遞減值
所述increment和decrement方法可被用於調整在所述高速緩存條目的整數的值。這兩種方法都接受可選的第二個參數，指示增加或減少項目值的數量：

```
Cache::increment('key');
Cache::increment('key', $amount);
Cache::decrement('key');
Cache::decrement('key', $amount);
```

## lock 原子鎖允許操縱分佈式鎖
https://blog.csdn.net/qiling_70/article/details/116272249
這邊有講原理

## api resource緩存
![](https://i.imgur.com/TmNfJwi.png)
https://www.youtube.com/watch?v=vrLcCxWlxOk
這樣就在60秒內查詢不用再在用到query會有緩存

可以搭配觀察者 之類的去用


## redis
記得安裝predis/predis



可以先用
redis labs 用
有免費額度

https://app.redislabs.com/#/subscriptions/subscription/1579872/bdb-view/10649837/configuration

.env除了
host 跟 password要改
也要加上
REDIS_CLIENT=predis
雖然config有預設
但還是加一下 不然抓不到predis
網路是說這是因為用composer 裝的原因

下一個index問題
![](https://i.imgur.com/1szuNL6.png)
因為預設index 是一 所以要改成0

.env加上
REDIS_CACHE_DB = 0

這是因為我們使用radis labs

## tags
只有redis跟那個 memcache才能用
只有從記憶體中拿出來的才能用

![](https://i.imgur.com/7qfxusN.png)
你tags存甚麼
你可以箭頭get put怎樣都對他
如果tags裡面有一個沒對到
就不會改變他
只有完全對到才能

這樣原因是
一個專案會有很多地方用到
所以會有不同的名稱

### 刪除方面
->flush()能刪除

這邊重點
你tags->flush()就算tags[]裡面只有一個
只要誰有包含就會算被刪除的

ex
圖片裡面
只peopel刪除

people.artists這個裡面有people所以也被連帶刪除


###### tags: `Laravel`


