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

20171215160213210

痛点

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

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****

******发现问题已经解决。******

总结

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

日记本

如果觉得我的文章对您有用,请随意赞赏。您的支持将鼓励我继续创作!

赞赏支持
被以下专题收入,发现更多相似内容