需要使用缓存存储数据时,首先引入缓存命名空间
~~~
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)