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


痛点

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

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系统中文件权限问题,导致缓存文件删除失败。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值