需要使用緩存存儲數據時,首先引入緩存命名空間
~~~
use System\Cache
~~~
## 寫入緩存
~~~
$key = 'goods:1';
$goods = ['goods_id' => 1, 'goods_name' => '愛他美奶粉', 'price' => 110];
Cache::set($key, $goods);
~~~
寫入帶過期時間的緩存
~~~
$key = 'goods:1';
$goods = ['goods_id' => 1, 'goods_name' => '愛他美奶粉', 'price' => 110];
$expire = 3600; // 3600 秒后失效
Cache::set($key, $goods, $expire);
~~~
## 讀取緩存內容
~~~
$key = 'goods:1';
$goods = Cache::get($key); // 緩存不存在或已過期時返回 false
if ($goods !== false) echo $goods['goods_name'];
~~~
## 判斷緩存是否存在
已過期的緩存視為不存在
~~~
$key = 'goods:1';
if (Cache::has($key) ) {
echo '緩存存在';
} else {
echo '緩存不存在';
}
~~~
## 刪除緩存
~~~
$key = 'goods:1';
Cache::delete($key);
~~~
清除全部緩存
~~~
Cache::flush();
~~~
## 計數器自增
~~~
$key = 'goods:1:hits';
Cache::increment($key); // 將商品1的點擊量增加一個,尚無緩存記錄時默認從0開始自增
Cache::increment($key, 10); // 點擊量增加10個
~~~
## 計數器自減
例如開發秒殺系統,將庫存存放在Redis緩存中,可以用Redis的高效IO 獲得較高的并發負載量
~~~
$key = 'goods:1:stock';
Cache::set($key, 100);
~~~
用戶秒殺時
~~~
$key = 'goods:1:stock';
Cache::decrement($key); // 將商品1的庫存減1個
Cache::decrement($key, 3); // 將商品1的庫存減3個
~~~
## 關于緩存鍵名
鍵名可以自定義,實際開發中我們常用 冒號(:)分隔的多個單詞作為鍵名,主要的原因是因為很多情況下我們用Redis作為緩存實現, Redis管理工具默認使用冒號(:)作為分隔符,每一級冒號作為一層目錄處理。
- 系統介紹
- 安裝
- 核心工廠(Be)
- 數據庫(Db)
- 配置文件
- 連接多個庫
- 獲取多條記錄
- 對象數組(getObjects)
- 二維數組(getArrays)
- 一維數組形式(getValues)
- 獲取帶索引的多條記錄
- 對象數組(getKeyObjects)
- 二維數組(getKeyArrays)
- 鍵值對(getKeyValues)
- 獲取迭代器形式的多條記錄
- 對象數組(getYieldObjects)
- 二維數組(getYieldArrays)
- 單列數組(getYieldValues)
- 獲取單條記錄
- 對象形式(getObject)
- 數組形式(getArray)
- 單個值(getValue)
- 插入/更新/替換
- 插入(insert)
- 批量插入(insertMany)
- 更新(update)
- 批量更新(updateMany)
- 替換(replace)
- 批量替換(replaceMany)
- 快速處理(quick***)
- 其它
- 防注入
- 執行SQL
- 事務/異常處理
- 表模型(Table)
- 條件查詢(where)
- 獲取多條記錄
- 對象數組(getObjects)
- 二維數組(getArrays)
- 獲取帶索引的多條記錄
- 對象數組(getKeyObjects)
- 獲取迭代器形式的多條記錄
- 聯表查詢
- 左連接(leftJoin)
- 右連接(rightJoin)
- 內連接(innerJoin)
- 聚合
- 求和(sum)
- 匯總(count)
- 最小值(min)
- 最大值(max)
- 平均值(avg)
- 其它
- 行模型(Tuple)
- 緩存(Cache)
- 配置文件
- 如何使用
- 會話(Session)
- 配置文件
- 如何使用
- Cookie
- 主題、模板
- 主題/模板結構
- 模板繼承
- 模板包含
- 注解
- 配置文件
- 配置項驅動:整型
- 配置項驅動:字符
- 控制器權限
- 擴展(Plugin)