美文网首页程序人生
【Laravel踩坑记】项目中清除缓存失败

【Laravel踩坑记】项目中清除缓存失败

作者: 催眠一只猫头鹰_e554 | 来源:发表于2017-12-15 16:13 被阅读0次

痛点

我想清除缓存中所有的内容,在项目根目录下执行如下语句:

php artisan cache:clean

但是我再次获取缓存中的内容还是存在:

//之前缓存的内容还是存在$unreads = Cache::get('unreads_' . $this->id);

问题的解决思路

让我们回到问题本质,缓存解决了什么问题:

数据库的局限:数据库连接非是非常"昂贵"的资源连接池的连接数是有限的,如果用户过多,势必要等待读写数据时需要加锁每次用户请求都访问数据库,在多用户,大并发是不行的

解决思路如下:

“在计算机行业的所有问题,都可以通过增加一个抽象层来解决”在应用程序和数据库之间增加一个层:缓存层缓存的数据需要保存起来

通过上面的思路,先找到Laravel中cache保存在什么地方:

storage

├── app├── logs└──framework└──cache└── data

随便打开data目录下一个文件内容如下:

1513145594a:7:{s:8:"comments";i:0;s:5:"chats";i:2;s:8:"requests";i:0;s:5:"likes";i:0;s:7:"follows";i:0;s:4:"tips";i:0;s:6:"others";i:0;}

在Larave中默认的缓存都已JSON格式存放在该目录下.

问题来了

执行缓存清除操作后这个文件夹下文件仍然存在,所以问题的最终定位是执行清除命令后该文件夹并没有删除。

sudo chmod -R 777 .

再执行下面的命令

php artisan cache:clean

发现问题已经解决。

总结

Linux系统中文件权限问题,导致缓存文件删除失败。

相关文章

网友评论

    本文标题:【Laravel踩坑记】项目中清除缓存失败

    本文链接:https://www.haomeiwen.com/subject/uasdwxtx.html