赞
踩
1、安装redis扩展后运行
2、修改配置目录config下面的cache.php文件
- return [
- 'default' => 'file',
- 'stores' => [
- // 文件缓存
- 'file' => [
- // 驱动方式
- 'type' => 'file',
- // 设置不同的缓存保存目录
- 'path' => '../runtime/file/',
- ],
- // redis缓存
- 'redis' => [
- // 驱动方式
- 'type' => 'redis',
- // 服务器地址
- 'host' => '127.0.0.1',
- // 端口号
- 'port' => '6379',
- // 密码
- 'password'=> "",
- // 默认缓存时间
- 'timeout' => 3600
- ],
- ],];
3、上代码
很好理解 先获取redis的key,第一次查肯定是没有的,就从Mysql查询,然后设置key,再查询就读取key。
一句话:有缓存读取缓存,没有就查询数据(个人理解)
- /**
- * 查询商家信息
- * @param $id 商家id
- */
- public function getStoreInfo(Request $request)
- {
- $validate = new CommonValidate([
- 'id' => 'require|integer',
- ]);
- if (!$validate->check($request->param())) {
- return api_json(1, $validate->getError());
- }
- $store_id = $request->param('id');
- $redis = new Redis();
- // 获取redis缓存
- $store_info = $redis->get('getStoreInfo' . $store_id);
- if (!$store_info) {
- $store_info = StoreModel::where(['store_id' => $request->param('id')])->find()->toArray();
- // 设置redis缓存 第一个参数 key,这里设置的是方法名拼接上传过来的商家id,防止重复,第二个参数就是 值
- $redis->set('getStoreInfo' . $store_id, $store_info,10); //设置10秒过期 不填默认0为永久缓存
- return api_json('0', 'mysql', $store_info);
- } else {
- return api_json('0', 'reids', $store_info);
- }
-
- }
4、查看效果
第一次访问
cmd命令行查看所有key
存到redis成功
10s内刷新页面 查询数据,读的redis缓存
10s后
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。