ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
需要使用缓存存储数据时,首先引入缓存命名空间 ~~~ 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管理工具默认使用冒号(:)作为分隔符,每一级冒号作为一层目录处理。