Laravel Cache留空文件夹

时间:2015-08-21 12:03:15

标签: php laravel caching laravel-5

我正在使用Cache为移动应用程序用户保存登录会话。 我在Laravel 4上。每当有人注销时,我都会使用以下方法清空会话令牌:

Cache::forget($token);

问题是这会留下一些最初创建的空文件夹来保存缓存文件。我担心app / storage / cache文件夹中有许多空文件夹会减少将来读取缓存数据的获取时间。

当我运行Cache :: forget函数时,如何删除缓存文件的两个父文件夹以及文件?

1 个答案:

答案 0 :(得分:2)

你不应该担心它。访问会话数据时,Laravel不扫描所有文件夹,但确切地知道会话存储在哪个文件夹和子文件夹中,因为它们的名称等于会话密钥的第一个和第二个2个字符。这样做是为了优化会话存储,因为操作系统可能存在可以存储在单个文件夹中的文件数量限制。

另一方面,每次有人注销时删除这些文件夹会产生影响,因为Laravel首先需要检查文件夹是否包含任何其他会话,否则会导致额外的I / O操作。

最后,由于文件夹名称是通过取2个字符的会话密钥创建的,而会话密钥只包含十六进制数字,因此文件夹数量不会超过256(16 * 16)。